JS學習筆記 之 預編譯

2022-08-24 12:21:11 字數 646 閱讀 7885

1. imply global 暗示全域性變數:任何變數,未經宣告就賦值,此變數為全域性物件(window)所有

例:a = 10;     -->     window.a = 10;  (不管此變數是在全域性賦值的,還是區域性賦值的)

2. 一切宣告的全域性變數都是window的屬性     --> window即全域性的

var b = 123;     -->     window.b = 123;

-->     window

預編譯發生在函式執行的前一刻

--> 解釋一句,執行一句

函式體預編譯過程:

1. 建立ao物件(activation object)-->生成執行期上下文

2. 找形參和變數宣告,將形參和變數宣告作為ao物件的屬性名,值為undefined

3. 將實參和形參值統一

4. 在函式體裡找函式宣告,作為go物件的屬性名,值為函式體 -->   注意:函式表示式 ≠函式宣告

全域性預編譯過程:

1. 生成go物件(global object)===window

2. 找變數宣告,作為go物件的屬性名,值為undefined

3. 找函式宣告,作為go物件的屬性名,值為函式體

JS之預編譯 詳解

語法分析 預編譯解釋執行 語法分析就是js引擎去檢查你的 是否有語法錯誤,解釋執行顧名思義就是執行你的 當然最重要的還是預編譯,那麼預編譯是在什麼時候開始發生呢?接下來就是重點了。首先要明白什麼是函式宣告?什麼是變數賦值?functiona 函式宣告 vara function 變數賦值 函式表示式...

JS預編譯 函式預編譯和全域性預編譯

預編譯發生在函式執行前一步 建立ao物件 執行期上下文 找形參和變數宣告,將變數和形參名作為ao 屬性名,值為undefined 將實參值和形參統一 在函式體裡面找函式宣告,值賦予函式體 結果 預編譯過程 函式馬上要執行,但是還沒執行 首先建立ao物件,也就是函式它產生的儲存空間庫 ao,b und...

JS 函式預編譯

1 語法分析 2 預編譯 3 解釋執行 預編譯四部曲 1.函式在執行的瞬間,生成乙個執行期上下文 active object 簡稱ao 2.分析引數 2.1 函式接收形式引數,新增到ao的屬性,並且這個時候值為undefine,例如ao.age undefined 2.2 接收實參,新增到ao的屬性...