javascript关于变量的声名

101 阅读1分钟

1.如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。

2.如果您把值赋给尚未声明的变量,该变量将被自动作为 window 的一个属性。

3.非严格模式下给未声明变量赋值创建的全局变量,是全局对象的可配置属性,可以删除。

var var1 = 1; // 不可配置全局属性
var2 = 2; // 没有使用 var 声明,可配置全局属性

console.log(this.var1); // 1
console.log(window.var1); // 1
console.log(window.var2); // 2

delete var1; // false 无法删除
console.log(var1); //1

delete var2; 
console.log(delete var2); // true
console.log(var2); // 已经删除 报错变量未定义

4.局部变量在函数执行完毕后销毁。全局变量在页面关闭后销毁