为什么在以下程序中未删除x?

时间:2018-08-21 17:03:02

标签: javascript

var x = 1;
var output = (function() {
    delete x;
    return x;
 })();
console.log(output);

“删除”语句仅限于对象吗?

3 个答案:

答案 0 :(得分:9)

delete仅可用于删除对象属性;它不能取消声明变量(请参见MDN)。

如果需要使用此功能,请将x分配给window

window.x = 1;

var output = (function() {
    delete window.x;
    return window.x;
})();

console.log(output);

注意:通常,将window对象弄乱是不好的做法,应尽可能避免。

答案 1 :(得分:4)

是的,您是对的。 delete运算符从对象中删除给定的属性。请检查此链接以获取完整说明:MDN delete

答案 2 :(得分:3)

正确,delete设计用于对象属性。它对变量或函数没有影响。