JS的预编译过程

预编译发生在函数执行的前一刻函数

预编译(全局)spa

三部曲:对象

①、生成GO对象 (Global Object)     //  GO  ===  window作用域

GO{io

}编译

②、找形参和变量声明,将变量和形参名做为GO属性名,值为undefined变量

③、在函数体里面找函数声明,值——赋予函数体im

 


预编译(局部)co

四部曲:生成

①、生成AO对象 (Activation Object  执行期上下文)“做用域”   

AO{

}

②、找形参和变量声明,将变量和形参名做为AO属性名,值为undefined

③、将实参值和形参统一

④、在函数体里面找函数声明,值——赋予函数体

 


 

1、imply global  暗示全局变量:即任何变量,若是变量未经声明就赋值,此变量就为全局对象全部。 

2、一切声明的全局变量,都归window全部

3、window就是全局

4、①函数声明总体提高到逻辑最前面

  ②变量声明提高到逻辑最前面


JS三部曲

一、依法分析

二、预编译

三、解释执行

相关文章
相关标签/搜索