JavaScript語言運行的過程分爲三步:語法分析、預編譯、解釋執行。瀏覽很多博客發現,在很多面試中JavaScript的預編譯過程總是會被作爲一個考點,現在大致總結如下,以後補充。
1.變量提升:變量提升在預編譯過程中是一個十分重要的知識點,其中包括:函數聲明整體提升和變量聲明提升。指的是函數裏所有的聲明都會被提到函數的頂部。
2.函數聲明:
3.變量賦值:
4.預編譯過程:
(1).創建AO activation object(執行期上下文對象)
(2).找形參和變量聲明,將變量和形參作爲AO屬性名,值爲undefined
(3).將實參值和形參統一
(4).在函數體裏面找函數聲明,值賦予函數體
5.實例:
(1)
console:
AO:
(2)
console:
AO: