访问Java Scipt对象的未声明变量

时间:2017-04-21 10:43:08

标签: javascript variables object scope

当我遇到这个时,我正在玩变量。我无法找到原因。我想了解这一点。

下面给出了一个很明显的参考错误例外:



console.log(age);




但是当对象完成同样的事情时,它不会抛出任何类型的错误。它会打印出未定义的'好像变量已经声明:



var person = {};
console.log(person.age)




有趣的是,当你查看“#39;对象,没有'年龄'属性。

我知道我们可以直接在对象上创建属性:

person.age = 3;

可以对全局或局部变量进行处理:

a = 3

但是,在分配或声明之前访问某些内容应该抛出异常或错误,就像全局或局部范围变量一样。

1 个答案:

答案 0 :(得分:1)

  

下面给出了一个明显的参考错误的例外

是的,因为没有参考age

  

但是当对象完成同样的事情时,它不会抛出任何东西   一种错误。

为什么会这样?您通过有效的引用person引用对象,并且由于此对象没有属性age,因此返回值undefined