執行環境定義了變數或函式有權訪問的其他資料,決定了它們各自的行為。全域性執行環境是最外圍的乙個執行環境。每個執行環境都有乙個與之關聯的變數物件,環境中定義的所有變數和函式都儲存在這個物件中。
根據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...