例如:这里我用var声明了一个变量,然后尝试删除它,失败了。
var derp = "foo";
\> "foo"
derp;
\> "foo"
this.derp;
\> "foo"
delete derp;
\> false
derp;
\> "foo"
但是,如果我创建一个没有 var 的变量,那么我就可以成功删除它。
perd = "boo";
\> "boo"
this.perd;
\> "boo"
delete perd;
\> true
perd;
\> undefined
谁能为我解释一下这种行为?我敢肯定这是有原因的。
最佳答案
delete
运算符不会删除变量。它只会从对象中删除属性。
当你使用一个裸标识符而不用 var
关键字声明它时,它不是一个变量,而是一个全局变量的属性(通常是 window
浏览器)。这就是您可以删除它的原因。
有关 delete
运算符的更多信息可用 here .
关于javascript - 可以删除非 var 变量,但不能删除 var 声明的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15104200/