全局变量的缺点
- 长期会占用内存
- 容易引发命名冲突。在多人协作的开发中,全局变量过多就会导致命名冲突的发生的可能性增大,会污染命名空间
- 会影响到局部变量的获取。如下:
var a=10;
function test(){
console.log(a);
var a=20;
}
test();
上述代码输出为undefined,因为函数内部的console.log(a)是局部变量a,这里存在变量声明的提升,但是变量的赋值没有提前。即上述函数中的代码等价于:
var a;
console.log(a); //输出为undefined
a=10;