时间:2021-05-26
相信你对全局变量一定不陌生,在函数作用域里用a=1这种形式定义的变量会是一个全局变量,在全局作用域里,用下面3种形式都可以创建对全局可见的命名:
复制代码 代码如下:
<script>
var a = 1;
b = 2;
window.c = 3;
</script>
对于b=2这种方式, 它其实和c是一样的,在执行这个赋值语句的时候,会沿着作用域链寻找名字叫做b的变量,一直找到作用域链的顶端还没有找到,于是给window添加一个属性b然后赋值。
var与不var有两个区别:
1 var的全局变量不能被删除,因为delete智能删除对象的可删除的属性,而通过var 定义的全局属性会被标明不可删除。需要说明的是,delete不成功并不会抛错,delete的返回值是true|false。
2 var定义的全局变量会被提升,而不用var定义的全局变量不会被提升。可以看下面程序的执行结果:
复制代码 代码如下:
<script>
alert(a);
var a=1;
</script>
复制代码 代码如下:
<script>
alert(a);//error, a undefined
a=1;
</script>
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
定义在函数外的变量一定是全局变量;定义在函数内的变量,如果声明了var,那该变量就是局部变量,如果不声明var,那么该变量就是全局变量。1、全局变量与局部变量J
在JavaScript中,全局变量有两种声明方式使用var显示声明的全局变量不使用var声明的隐式全局变量两者的区别在于是否能通过delete操作符删除先看一段
var有三种声明的情形:var声明的全局变量var在函数范围内声明的局部变量eval中声明的全局变量。首先,1、2种情形var声明的变量是无法删除的。尽管var
1.JavaScript大小写敏感;2.声明变量如果不写var,则为声明了全局变量;任何不是方法的函数,都是全局变量,其里面的this都指向window;3.%
定义在函数体外的都属于全局变量,定义在函数体内的属于局部变量。这里的定义是指通过var声明的。JavaScript有隐含的全局概念,意味着你不声明的任何变量都会