相信你对全局变量一定不陌生,在函数作用域里用a=1这种形式定义的变量会是一个全局变量,在全局作用域里,用下面3种形式都可以创建对全局可见的命名:
<script> var a = 1; b = 2; window.c = 3; </script>
var与不var有两个区别:
1 var的全局变量不能被删除,因为delete只能删除对象的可删除的属性,而通过var 定义的全局属性会被标明不可删除。需要说明的是,delete不成功并不会抛错,delete的返回值是true|false。
2 var定义的全局变量会被提升,而不用var定义的全局变量不会被提升。可以看下面程序的执行结果:
<script> alert(a); // undefined var a=1; </script>
<script> alert(a);//error, a undefined a=1; </script>