当我尝试使用未声明的变量时,我得到ReferenceError
:
console.log(a); // Uncaught ReferenceError: a is not defined
我可以先使用一个变量,然后再定义它,这不会因为提升而成为问题。
console.log(a); // undefined
var a;
但是当我声明一个对象时,为什么执行上下文会让我使用它的任何属性?
var obj = {};
console.log(obj.a); // undefined
console.log(obj.why); // undefined
为什么这些是允许的a
,并且why
从未在任何地方声明过?