当声明一个javascript全局变量时,其实是定义了全局对象的一个属性。javascript
当使用var声明一个变量时,建立的这个属性是不可配置的,也就是说这个变量没法经过delete运算符来删除。可能你已经注意到,若是你没有使用严格模式并给一个未声明的变量赋值的话,javascript会自动建立一个全局变量。以这种方式建立的变量是全局对象的正常可本会属性,并能够删除它们:java
1 var a =1; 2 b =2; 3 this.b2 = 3; 4 delete a; //不可删除 5 delete b; //可删除 6 delete this.b2 //可删除
javascript全局变量是全局对象的属性,这是在ECMAScript 5规范称为“声明上下文对象。javascript能够容许用this关键字来引用全局对象,却没有方法能够引用局部变量中存放的对象。这种存放局部变量的对象的特有性质,是一种对咱们不可见的内部实现。然而,这些局部变量对象存在的观念是很是重要的。this