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



考虑这个程序:

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

输出是什么?

碰巧是1,而不是我期望的undefined。我认为x纯粹是在函数的范围内,在函数内删除它应该使它无法进入外部。

有谁能解释一下吗?

请参阅手册删除:

delete操作符删除对象

的属性

如果 expression 没有计算出属性,则delete不执行任何操作。

最新更新