再次强调下变量的作用域:(给小白看的)
js中变量作用域可分为:"全局变量"和"局部变量"
"全局变量":声明在函数之外的变量
"局部变量":声明在函数体中的变量,并且只能在当前函数体内访问
但有一种情况,我们在定义变量时可能会忘记加变量名前面的 var 关键字。
这样会发生什么呢?
我们做下实验,代码如下:
function test() {
a = 30;
var b = 10;
}
test();
window.alert("a="+a);
window.alert("b="+b);
运行结果是游览器把函数内部的变量a弹出了a = 30,而同样在函数内部的变量b却没有弹出。
结果表明:在JS中,如果在函数内部定义变量时不加var,则判定为全局变量,加上var则为正常的局部变量。
即,在声明变量时凡是没有var关键字,而直接赋值的变量均为全局变量。
注意:上述变量声明时,不加var的用法不推荐使用,我们要尽量避免。(容易造成数据污染)