作用域
一、作用域與作用域鏈
作用域:定義變量的區域,它有一套訪問變量的規則,這套規則用來管理瀏覽器瀏覽器引擎如何在當前作用域以及在潛逃的作用域中根據變量去尋找變量。
作用域鏈:保證執行環境對有權訪問的所有變量和函數的有序訪問,通過作用域鏈,我們可以訪問到外層的環境的變量和函數。作用域的本質是一個指向變量對象的指針列表,作用域的前端失蹤指向當前執行上下文的變量對象,全局執行上下文的變量對象是作用域的最后一個對象。
當我們尋找一個變量時,如果當前執行環境未查找到,我們可以沿著執行韓靜向后查找,作用于鏈的創建跟執行上下文的創建有關。
作用域分為三個部分:
1、全局作用域
全局變量是掛在在Windows對象下的變量,所以在網頁的任何位置都可以訪問并使用
2、函數作用域
函數中定義的變量是函數變量,所以函數的作用域就是函數的內部。當函數執行完成后,這個函數變量也會被銷毀,所以在外部是無法訪問該變量。
3、塊級作用域(const、let可產生)
let定義的變量只能在塊級作用域中被訪問,在js代碼中,if 語句及 for 語句后面 {...}所包括的就是塊級作用域。
一旦將函數嵌套起來,就會形成作用域鏈,作用域鏈在定義的時候就被確定,和尖頭函數的this指針一樣,后續不會改變。

浙公網安備 33010602011771號