console.log(a); // undefined
console.log(b); // b 没有声明--------->这里报错
b = 10;
var a = 20;
***************************************
console.log(a); // undefined
b = 10;
console.log(b); // 10, 代码执行阶段创建
var a = 20;
申明下这都是在非严格模式下进行的
在全局上下文下,b为什么输出会报错,网上说b是一个全局对象的属性并不是全局变量,这是为什么?第二个问题是全局对象是在进入任何执行上下文之前就已经创建了的对象,然后是进入上下文阶段进行变量声明,最后是代码代码执行阶段,但是为什么b只在代码执行阶段才会挂到window下面?
举个直白的例子