全局中的解析和执行过程
预处理:创建一个词法环境(LexicalEnvironment,在后面简写为LE),扫描JS中的用声明的方式声明的函数,用var定义的变量并将它们加到预处理阶段的词法环境中去。
一、全局环境中如何理解预处理
比如说下面的这段代码:
var a = 1;//用var定义的变量,以赋值 var b;//用var定义的变量,未赋值 c = 3;//未定义,直接赋值 function d(){//用声明的方式声明的函数 console.log('hello'); } var e = function(){//函数表达式 console.log('world'); }
在预处理时它创建的词法作用域可以这样表示:

