使用javascript从页面中删除变量或对象

使用javascript从页面中删除变量或对象,javascript,Javascript,我使用delete关键字删除变量,但它似乎不起作用 var txt = "Some text"; alert(txt); //Output - Some text delete txt; alert(txt); //SAME OUTPUT - Some text delete用于删除属性,而不是变量。也就是说,它用于从对象中删除属性 根据“您可以使用delete运算符删除隐式声明的变量,但不能删除使用var或function语句声明的变量。” 因此,您所描述的行为是正确的。要删除变量,您必须执

我使用delete关键字删除变量,但它似乎不起作用

var txt = "Some text";
alert(txt); //Output - Some text
delete txt;
alert(txt); //SAME OUTPUT - Some text

delete
用于删除属性,而不是变量。也就是说,它用于从对象中删除属性

根据“您可以使用delete运算符删除隐式声明的变量,但不能删除使用var或function语句声明的变量。”


因此,您所描述的行为是正确的。

要删除变量,您必须执行
txt=undefeind
@Derek:这不会删除变量,它只是将“值”
undefined
赋给它。但是,它允许垃圾收集之前引用的变量,除非(在其他变量中)有其他引用。不存在的变量或属性与存在但“值”
未定义的变量或属性之间存在差异。这意味着您不能真正删除变量?一旦你声明了一个变量,就这样,它将不能被删除?你真的不需要删除变量:将它们设置为
undefined
可以让浏览器释放内存,因为变量引用的东西可能会消失-但这就像清空一个盒子:盒子本身不会消失在稀薄的空气中。
delete window.txt
如果你用
window.txt=…
,但如果使用
var
创建,则不会。当然,
window
只适用于全局变量。出于不相关的原因,最好避免(太多)全局变量,因此,如果使用名称空间方案,那么“变量”实际上是名称空间对象的属性,因此可以冷删除它们。