作用域鏈
作用域鏈就是內部上下文的變數物件vo的列表,作用域鏈用來檢索上下文出現的識別符號,從而保證有序訪問所有變數和函式。
乙個作用域鏈包括父級變數物件(variable object)(作用域鏈的頂部)、函式自身變數vo和活動物件(activation object)。
當查詢識別符號的時候,會從作用域鏈的活動物件部分開始查詢,然後(如果識別符號沒有在活動物件中找到)查詢作用域鏈的頂部,迴圈往復,就像作用域鏈那樣。
改變或者延長作用域鏈如果使用with或者catch語句就會改變作用域鏈。這兩個語句是可以在作用域鏈前端臨時增加乙個變數物件,該變數物件在**執行後被移除。
with語句–將指定的物件新增到作用域鏈中
try-catch中的catch語句–建立乙個新的變數物件
JS作用域和作用域鏈
什麼是js作用域?js作用域也就是js識別變數的範圍 1 全域性作用域 2 區域性作用域 3 e6的塊級作用域 全域性作用域 也就是定義在window下的變數範圍,在任何地方都可以訪問 區域性作用域 是只在函式內部定義的變數範圍 塊級作用域 簡單來說就是用let和const在任意的 塊中定義的變數都...
JS作用鏈和作用域
js作用域也就是js識別變數的範圍,作用域鏈也就是js查詢變數的順序 先說作用域,js作用域主要包括全域性作用域 區域性作用域和es6的塊級作用域 全域性作用域 也就是定義在window下的變數範圍,在任何地方都可以訪問,區域性作用域 是只在函式內部定義的變數範圍 塊級作用域 簡單來說用let和co...
js高階 作用域與作用域鏈
理解 就是一塊地段,乙個 段所在的區域。它是靜態的 相對於上下文物件 在編寫 時就確定了。分類 全域性作用域 函式作用域 塊作用域 es6 作用 隔離變數,不同作用域下的同名變數不會有衝突。var a 10,b 20 function fn x bar 100 bar 200 fn 10 結果 區別...