Udemy — JavaScript: The Advanced Concepts — JavaScript Foundation
II 筆記
Published in
Jan 25, 2022
執行環境 (Execution context)
Javascript 共會建立兩種執行環境:
- 全域執行環境 (Global Execution Context)
在執行任何程式之前,預設會建立的一個全域環境。
全域執行環境替我們做了兩件事情:
a. 建立全域物件 (Global object),以 web browser 來說就是 window
b. 建立「this」 - 函式執行環境 (Function Execution Context)
在函式執行 (invoke) 的時候會各別為函式建立專屬的執行環境,
執行一個函式就會建立一個該函式的執行環境,所以有可能同時會有多個函式執行環境。
語彙範疇(Lexical Scope)
代表著區塊間的包裹關係,被包裹在內層的區塊可以保護自己的變數不被外層取用,相反的外層區塊的變數還是可以被內層區塊使用
參考:JavaScript — Lexical Scope
Scope chain
Scope 是變數的取用範圍,而程式的詞彙環境 (Lexical Environment) 決定了這個範圍,Javascript 引擎會依著範圍鏈 (Scope chain) 尋找可取用的變數。