JavaScript 之 預編譯

JavaScript語言運行的過程分爲三步:語法分析、預編譯、解釋執行。瀏覽很多博客發現,在很多面試中JavaScript的預編譯過程總是會被作爲一個考點,現在大致總結如下,以後補充。

1.變量提升:變量提升在預編譯過程中是一個十分重要的知識點,其中包括:函數聲明整體提升和變量聲明提升。指的是函數裏所有的聲明都會被提到函數的頂部。

2.函數聲明:  

3.變量賦值:

4.預編譯過程:

(1).創建AO activation object(執行期上下文對象)
(2).找形參和變量聲明,將變量和形參作爲AO屬性名,值爲undefined
(3).將實參值和形參統一

(4).在函數體裏面找函數聲明,值賦予函數體

5.實例:

(1)

console:

 

AO:

(2)


console:

AO: