预编译发生在函数执行的前一刻
预编译(全局)
三部曲:
①、生成GO对象 (Global Object) // GO === window
GO{
}
②、找形参和变量声明,将变量和形参名作为GO属性名,值为undefined
③、在函数体里面找函数声明,值——赋予函数体
预编译(局部)
四部曲:
①、生成AO对象 (Activation Object 执行期上下文)“作用域”
AO{
}
②、找形参和变量声明,将变量和形参名作为AO属性名,值为undefined
③、将实参值和形参统一
④、在函数体里面找函数声明,值——赋予函数体
一、imply global 暗示全局变量:即任何变量,如果变量未经声明就赋值,此变量就为全局对象所有。
二、一切声明的全局变量,都归window所有
三、window就是全局
四、①函数声明整体提升到逻辑最前面
②变量声明提升到逻辑最前面
JS三部曲
1、依法分析
2、预编译
3、解释执行
来源:https://www.cnblogs.com/zzq-229/p/9674763.html