1.2.1.2.執行環境:創造與提升
JavaScript code不會直接執行, 而是得先經過JavaScript engine的轉換
執行環境的建立分為兩階段
1.Execution context is created (creation phase)
在記憶體中為變數和函數空出空間, 並將變數設為undefined
建立global object, this
hoisting:
當syntax parser執行程式碼時, 開始設定轉化, 她會知道你在哪裡轉化變數和函數, 設定變數和函數在記憶體空間裡, 這個步驟稱為提升 (hoisting)
在逐步執行程式碼前, JavaScript engine已經為變數和函數在記憶體中建立一個空間了
但像是變數的宣告, 雖會為a預留空間, 但他會在執行時才會知道a是什麼值
若不知道是甚麼值時, 會用undefined來取代
所有JavaScript的變數一開始都會被設定為undefined
而函數則是一開始就設定好
Last updated
Was this helpful?