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

Eas*_*onk 4 javascript

考虑这个程序:

(function(x){
  delete x;
  return x;
})(1);
Run Code Online (Sandbox Code Playgroud)

什么是输出?

它碰巧是,1而不是undefined我所期望的.我认为x纯粹是在函数范围内,并且在函数内部删除它应该使它在外部无法访问.

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

Que*_*tin 11

请参阅手册以了解删除:

所述delete操作者删除一个对象的属性

如果expression不评估属性,则不delete执行任何操作.

变量不是属性.