javascript編譯過程

作用域和作用域鏈

[[scope]]: 每個JavaScript函數都是一個對象,對象中有些屬性我們可以訪問,有些不可以,但有些不可以,這些屬性僅供JavaScript引擎存取,[[scope]]就是其中一個。[[scope]]指的是我們所說的作用域,其中存儲了運行期上下文集合。

作用域鏈:[[scope]]中所存儲的執行期上下文對象的集合,這個集合呈鏈式鏈接(叫做作用域鏈)

語法分析

通篇掃描看有沒有語法錯誤

預編譯

預編譯前奏
1.imply global 暗示全局變量:即任何變量,如果變量未經聲明
就賦值,此變量就爲全局變量所有
2.一切聲明的全局變量,全是window屬性

預編譯(發生在函數執行的前一刻)
四部曲:

{
	this : window
	arguments : {}
}
  1. 創建AO對象(Activation Object執行期上下文)
  2. 找形參和變量聲明,將變量和形參名作爲AO屬性名,值爲undefined
  3. 將實參和形參統一
  4. 在函數體裏面找函數聲明-----function test(){}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章