全局预编译的步骤:
1.创建GO(Global Object,全局执行期上下文,在浏览器中为window)对象;
2.寻找var变量声明,并赋值为undefined;
3.寻找function函数声明,并赋值为函数体;
4.执行代码。
函数预编译的步骤:
1.创建AO对象,执行期上下文。
2.寻找函数的形参和变量声明,将变量和形参名作为AO对象的属性名,值设定为undefined.
3.将形参和实参相统一,即更改形参后的undefined为具体的形参值。
4.寻找函数中的函数声明,将函数名作为AO属性名,值为函数体。