{javascript} JS 代码 运行 以意想不到的方式

{javascript} JS code run in unexpected way

我在学习js的时候遇到了这个问题: screenshot

这是我的代码:

9.  console.log(obj);
10. var obj = {id:123, name:'abc'};
11. obj.age = 23;
12. console.log(obj);
13. obj.class = 23433;

我认为它显示 #9 -- undefined 和 #12 -- {id:123, name:'abc'}

然而它显示 #9 -- {id: 123, name: "abc", age: 23, class: 23433} 和 #12 -- {id:123, name:'abc'}

我不明白js是怎么回事运行。任何人都可以解释这个或我应该学习什么 js 功能吗?

刷新页面,让每行运行。第 9 行输出 undefined,第 12 行输出 Object {id: 123, name: "abc", age: 23},如您所料。

第 9 行不会因为 "hoisting" 而引发引用错误(您可以查看 "hoisting" 是什么)