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三部曲

一、依法分析

二、預編譯

三、解釋執行

相關文章
相關標籤/搜索