00:00/
发布于2017-06-02 / 1028次浏览
1.在函数作用域内 加var定义的变量是局部变量,不加var定义的就成了全局变量。
2.在全局作用域下,使用var定义的变量不可以delete,没有var 定义的变量可以delete.也就说明隐含全局变量严格来说不是真正的变量,而是全局对象的属性,因为属性可以通过delete删除,而变量不可以。
通俗点说:变量在方法外面没什么区别,都是全局变量。在方法里面的话没有就是默认全局变量,有的话就是函数内部的局部变量,这个变量只在这个方法内有效,不会影响函数外的变量。
<script>
var a=1;
b=2;
function test(){
c=3;
var d=4;
}
test();
alert('a='+a);
alert('b='+b);
alert('c='+c);
alert('d='+d);//这个就会报错,因为它不是全局变量
</script>
但是如果定义了test()函数但没有调用test(),alert(‘c’+c)会提示c is not defined!
简单的理解为,在函数里写的变量,不管有没有var,只要不调用,就不会定义这个变量。(除非在函数外已经定义过。)
个人理解,有错误望能指正!
[…] 就像我在之前的博客写的那样js定义变量时,有var关键字和没var关键字有什么差别? […]