delete运算符实际上并不删除变量

时间:2016-01-19 01:22:40

标签: javascript

我可以知道为什么它会提示1而不是未定义以下的javascript代码吗?

function a(){
    var y=1;
    delete y;
    alert(y);
}

a();

2 个答案:

答案 0 :(得分:2)

delete operates on the property of an object;不是非对象。

所以,这样可行:

var y = { val: 1};
delete y.val;
console.dir(y); 

输出:

{}

答案 1 :(得分:1)

来自MDN参考: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete

  

删除仅对对象的属性有效。它对变量或函数名称没有影响。