请解释这个简单的javascript面试问题背后的基本原理

时间:2011-08-09 13:53:11

标签: javascript

考虑这个程序:

(function(x){
  delete x;
  return x;
})(1);

输出是什么?

恰好是1,而不是我预期的undefined。我认为x纯粹属于函数范围,在函数内部删除它应该使它在外部无法访问。

有人可以对此有所了解吗?

1 个答案:

答案 0 :(得分:11)

请参阅delete的手册:

  

delete运算符删除对象的属性

  

如果 expression 未对某个媒体资源进行评估,则delete不执行任何操作。

变量不是属性。