Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么';删除';无法在javascript中使用局部变量?_Javascript - Fatal编程技术网

为什么';删除';无法在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的一个重要观点——我的直觉是,这与以下事实有关:在浏览器中,全局变量实际上作为属性存在于
窗口
对象上。因此,它们与对象上的属性描述相匹配,并且可以以这种方式删除。