執行環境和作用域鏈

2021-10-02 00:14:56 字數 1117 閱讀 8254

執行環境定義了變數或函式有權訪問的其他資料,決定了它們各自的行為。

每個執行環境都有乙個與之關聯的變數物件,環境中定義的所有變數和函式都儲存在這個物件中。

全域性執行環境是最外圍的乙個執行環境。

根據ecmascript實現所在的宿主環境不同,表示執行環境的物件也不同。在web瀏覽器中,全域性執行環境被認為是window物件,因此所以全域性變數和函式都是作為window物件的屬性和方法建立的。

某個執行環境中的所有**執行完畢後,該環境被銷毀,儲存在裡面的變數和函式也會一起被銷毀。(全域性執行環境直到應用程式退出:如關閉網頁或瀏覽器,時才會被銷毀)

每個函式都有自己的執行環境。

當**在乙個環境中執行時,會建立變數物件的乙個作用域鏈。

用途:保證對執行環境有權訪問的所有變數和函式的有序訪問。

鏈條構成:

示例:

var a =1;

function

func1()

//這裡可以訪問a,b,但不能訪問c

console.

log(a,b,c)

;//報錯

}//這裡只能訪問a

console.

log(a,b,c)

;//報錯

不能訪問就是不能訪問,如果你訪問它,就會報錯。這個跟宣告但未初始化不一樣,宣告但未初始化你可以訪問,但是值為undefined。 注意理解下。

現在結合執行環境和作用域鏈來解釋一下為什麼

執行環境,作用域,作用域鏈詳解

宣告 該文章有些概念摘自 j ascript高階程式設計 1 執行環境 也稱 環境 執行環境定義了變數或函式有權訪問的其他資料,決定了他們各自的行為。全域性定義的變數,函式裡面可以訪問。一般情況下,函式裡面定義的變數,全域性無法訪問 2 全域性執行環境 全域性執行環境是最外圍的一直執行環境,在web...

紅寶書總結 執行環境 作用域鏈

基本概念 執行環境定義了變數或函式有權訪問的其他資料,決定了他們各自的行為。每個執行環境都有乙個與之關聯的變數物件,環境中定義的所有變數和函式都儲存在這個物件中 開發者無法訪問,解析器在後台使用 全域性執行環境是最外圍的乙個執行環境。web瀏覽器中,全域性執行環境被認為是window物件 因此,所有...

執行環境 作用域鏈及閉包

執行環境 execution context 定義了變數或函式有權訪問的其他資料,決定了他們各自的行為。每個執行環境都有乙個與之關聯的變數物件 variable object 環境中定義的所有變數 形參和函式宣告都儲存在這個物件中。編碼時無法訪問這個變數物件,解析器在處理資料時會在後台使用。在web...