JavaScript 執行環境

深入探討 JavaScript 執行環境

October 14, 2024

執行環境(Execution Context)是一種規範裝置,用於追蹤 ECMAScript 實作對程式碼的執行時評估。

執行環境(Execution Context)

當一個執行環境被建立時,無論是全域範疇執行環境還是函式範疇執行環境,它們都有兩個階段:

在建立階段,會建立兩個環境和一個記錄。

  1. 變數環境(VariableEnvironment)
  1. 詞法環境(LexicalEnvironment)
  1. 環境記錄(Environment Records)

建立階段:當 JS 引擎執行時。

  1. 建立全域執行環境,可以將其視為最大的房間。
  2. 在全域執行環境中,JavaScript 儲存所有變數和函式定義。可以將此視為為這些變數和函式貼上名稱標籤並在記憶體中為它們分配位置。

執行階段:JS 執行程式碼。

  1. 將值分配給已經儲存在全域執行環境中的變數。
  2. 執行函式(例如 greeting())。

執行函式時,它會建立自己的執行環境(建立自己的房間)。

var greeting = "Hello";
 
function sayHello(name) {
  console.log(greeting + " " + name);
}
 
sayHello("Joe");

首先,JS 會從上到下「讀取」程式碼,然後建立全域執行環境,這個階段稱為建立階段。在這個階段,有幾個任務需要完成

  1. 儲存變數和函式定義,可以想像成建立兩個名稱標籤,一個是變數 greeting,另一個是函式 sayHello。

然後我們進入第二個階段 - 執行階段。

  1. 將 Hello 的值分配給變數 greeting。
  2. 執行 sayHello("Joe"),這會建立它自己的執行環境,在這個執行環境內部,它也有如上所述的兩個階段,以下是 sayHello("Joe") 執行環境的詳細分解。

結論

回到部落格 🏃🏽‍♀️