"foo" derp; \> "foo" this.derp; -6ren">
gpt4 book ai didi

javascript - 可以删除非 var 变量,但不能删除 var 声明的变量?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:35:21 24 4
gpt4 key购买 nike

例如:这里我用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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com