js执行报错问题

console.log(a.b);

console.log(c.d);


var a = {

  b: 3

};

var c = {

  d: 8

};

书写顺序就是这样,正常情况下应该是打印两次undefind;

但是,输出却是这样:


undefined

Uncaught TypeError: Cannot read property 'd' of undefined


杨__羊羊
浏览 458回答 1
1回答

守着一只汪

正常情况下应该是报一次错,控制台打印在前,变量的声明在后由于js的变量提升机制,导致a和c并不会not defined,而是会undefined。也就是说在打印时a、c两个栈内存空间内只是存放着undefined,并不是一个对象,所以导致:Cannot read property 'b' of undefine;由于第一行报错,所以,第二行不会运行。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript