首页 > 开发 > JS > 正文

js执行报错问题

2017-09-05 05:51:29  来源:网友分享
console.log(a.b);console.log(c.d);var a = {  b: 3};var c = {  d: 8};

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

undefinedUncaught TypeError: Cannot read property 'd' of undefined

解决方案

正常情况下应该是报一次错,
控制台打印在前,变量的声明在后
由于js的变量提升机制,导致ac并不会not defined,而是会undefined

也就是说在打印时a、c两个栈内存空间内只是存放着undefined,并不是一个对象,所以导致:

Cannot read property 'b' of undefine;

由于第一行报错,所以,第二行不会运行。