为什么';删除';无法在javascript中使用局部变量?
这是密码为什么';删除';无法在javascript中使用局部变量?,javascript,Javascript,这是密码 (function(x){ delete x; return x; })(1); 即使删除了变量x,它仍将工作并返回值1 删除是否仅适用于对象属性和全局变量 删除运算符仅用于。不能利用它来删除变量——JavaScript中通常也没有必要这样做的用例。您始终可以将变量设置为null或undefined作为替代。是的,它不适用于变量。@FahadNisar得到了它,谢谢您注意,隐式全局变量(即通过赋值创建而不使用var的变量)可以删除,但使用var创建的变量不能删除。这是使用
(function(x){
delete x;
return x;
})(1);
即使删除了变量x,它仍将工作并返回值1
删除是否仅适用于对象属性和全局变量 删除运算符仅用于。不能利用它来删除变量——JavaScript中通常也没有必要这样做的用例。您始终可以将变量设置为
null
或undefined
作为替代。是的,它不适用于变量。@FahadNisar得到了它,谢谢您注意,隐式全局变量(即通过赋值创建而不使用var的变量)可以删除,但使用var创建的变量不能删除。这是使用var和不使用var之间的一个主要区别(另一个区别是在创建变量时)。@RobG的一个重要观点——我的直觉是,这与以下事实有关:在浏览器中,全局变量实际上作为属性存在于窗口
对象上。因此,它们与对象上的属性描述相匹配,并且可以以这种方式删除。