为什么我可以在javascript中删除声明为a = 1且未声明var b = 1的变量

时间:2016-01-20 09:28:43

标签: javascript

假设我们处于全球范围内:

当我在JS中声明变量时:

a = 1

我知道这不是正确的方法(但这不是问题)。 我可以用:

delete a (> returns true)

但是当我宣布:

var b = 1

我无法使用:

delete b (> returns false)

任何人都可以解释这种行为吗?

1 个答案:

答案 0 :(得分:8)

  

delete仅对对象的属性有效。它对变量或函数名称没有影响。

     

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete

a变为/最终被解释为window.a,而b显然是指本地变量