JS的预编译过程

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

预编译(全局)

三部曲:

①、生成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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值