1.js运行三部曲
语法分析、预编译、解释执行
2.预编译(函数声明整体提升,变量声明提升)
function test() { console.log(123)}
-------------------------------------------
function test() { console.log(123)}
-------------------------------------------
var a = 123;
// 123
--------------------------------------------
// undefined
var a = 123;
---------------------------------------------
---------------------------------------------
3. 预编译前奏
- imply global暗示全局变量:即任何变量,如果变量未经声明就赋值,此变量就为全局对象所有。
- 一切声明的全局变量,全是window的属性
4.预编译四部曲
- 找形参和变量声明,将变量和形参名作为AO属性名,值为undefined
- 将实参和形参统一
- 在函数体内找函数声明,值赋予函数体
文章来源: js学习笔记- 05 - 预编译