标签: javascript
考虑这个程序:
(function(x){ delete x; return x; })(1);
输出是什么?
恰好是1,而不是我预期的undefined。我认为x纯粹属于函数范围,在函数内部删除它应该使它在外部无法访问。
1
undefined
x
有人可以对此有所了解吗?
答案 0 :(得分:11)
请参阅delete的手册:
delete运算符删除对象的属性
delete
和
如果 expression 未对某个媒体资源进行评估,则delete不执行任何操作。
expression
变量不是属性。