请考虑以下片段(fiddle here):
var a;
a = 1;
console.log(delete a); // prints 'false'
b = 1;
console.log(delete b); // prints 'true'
为什么 delete
关键字对全局变量 a
和 b
的行为不同?
最佳答案
The delete operator removes a property from an object.
全局变量(不带 var
)是全局对象(通常是 window
)的属性,因此可以删除。
var
不是全局变量,而是外部作用域中的局部变量 - 不是全局对象的属性 - 所以 delete
不会删除它。来自那些文档:
x = 42; // creates the property x on the global object
var y = 43; // declares a new variable, y
delete x; // returns true (x is a property of the global object and can be deleted)
delete y; // returns false (delete doesn't affect variable names)
关于javascript - delete 关键字对全局变量的不同行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12433223/