2.预编译
2.1 函数声明整体提升
2.2 变量声明提升
2.3 预编译前奏
1. imply global 暗示全局变量:即任何变量,如果变量未经声明就赋值,此变量就为全局对象所有。
eg: a=123;
eg: var a=b=123;
2.一切声明的全局变量,全是window的属性。
eg:var a=123;===>window.a=123;
2.4 预编译(发生在函数执行的前一刻)
四部曲:
1.创建AO对象
2.找形参和变量声明,将变量和形参作为AO属性名,值为undefined
3.将实参和形参统一
4.在函数体里面找函数声明,值赋予函数体
案例:
Function fn(a){
console.log(a