JS的预编译过程

谁都会走 提交于 2020-02-28 12:00:57

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

预编译(全局)

三部曲:

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

GO{

}

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

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

 


预编译(局部)

四部曲:

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

AO{

}

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

③、将实参值和形参统一

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

 


 

一、imply global  暗示全局变量:即任何变量,如果变量未经声明就赋值,此变量就为全局对象所有。 

二、一切声明的全局变量,都归window所有

三、window就是全局

四、①函数声明整体提升到逻辑最前面

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


JS三部曲

1、依法分析

2、预编译

3、解释执行

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!