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

标签 javascript

考虑这个程序:

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

输出是什么?

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

有人可以解释一下吗?

最佳答案

请参阅 delete 的手册:

The delete operator deletes a property of an object

If expression does not evaluate to a property, delete does nothing.

变量不是属性。

关于javascript - 请解释这个简单的 javascript 面试问题背后的基本原理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6997253/

相关文章:

javascript - "Uncaught ReferenceError: myVar is not defined"OOP JavaScript

javascript - 分页和字母过滤器问题

javascript - 三元运算符的单返回

javascript - 生成图像后加载图像

javascript - Amcharts - 计算和绘制变化率

javascript - 这个例子中Node的执行顺序是什么

javascript - ajax 调用后 Viewmodel 内容为空?

javascript - 如何通过onclick将弹出框的输入数据传递给jsp?

javascript - 为什么它们不一样?

Javascript Happy Number 检测错误