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是什麼值

              var a = "Hello world";
          • 若不知道是甚麼值時, 會用undefined來取代

            • 所有JavaScript的變數一開始都會被設定為undefined

            • 函數則是一開始就設定好

Last updated