js的預編譯

2022-09-20 11:24:12 字數 475 閱讀 7385

js執行的三步:語法檢查,預編譯,解釋執行.

js預編譯前:window物件==全域性

1.任何位置上的變數未宣告直接賦值是全域性變數,發到window裡

2.在函式外宣告的變數也是全域性,放到window裡.

js預編譯時:對函式來說

1.生成函式的ao物件(作用域)

2.把函式的形參和變數宣告放到ao物件中,作為屬性

3.形參和實參相對應(實參的值傳給形參)

4.把函式宣告的函式名放到ao物件裡,作為屬性

js預編譯結束後,進行解釋執行,執行時,變數和函式的宣告不執行

js的預編譯

預編譯發生在函式執行前一刻 預編譯執行的步驟 1建立執行期上下文,activation object 即ao 2找形參和變數宣告,將形參和變數宣告做為ao的屬性名,尚未賦值,值為 undefined 3將形參和實參相統一,即把實參的值傳到形參裡面去 4在函式體裡面找函式宣告,賦值函式體 functi...

js的預編譯

函式執行前函式究竟做了什麼?一。函式執行前,首先會通篇檢查有沒有語法或者 寫錯的,如果有就直接報錯,如果沒有就會進行下一步 二。函式的預編譯階段 1.首先會在函式內生成乙個ao物件,2.變數或者形參作為函式的屬性名或者鍵名屬性值是undefined 3.實參給形參 4.函式宣告作為屬性值,屬性名為f...

js的預編譯

1.語法分析 通篇掃瞄看有沒有語法錯誤 2.預編譯 3.解釋執行 預編譯有兩種情況 一種是全域性的預編譯 一種是函式的預編譯 函式的預編譯 預編譯 函式執行的前一刻 下面 再預編譯的過程中發生了什麼變化呢 function demo num var num 13 console.log num 13...