js高階 作用域與作用域鏈

2022-10-08 21:42:33 字數 1125 閱讀 9607

理解

*就是一塊地段,乙個**段所在的區域。

*它是靜態的(相對於上下文物件),在編寫**時就確定了。

分類:全域性作用域

函式作用域

塊作用域(es6)

作用:隔離變數,不同作用域下的同名變數不會有衝突。

var a=10,b=20;

function fn(x)

bar(100);

bar(200);

}fn(10);

結果:

區別1全域性作用域之外,每個函式都會建立自己的作用域(函式作用域),作用域在函式定義時就已經確定了,而不是在函式呼叫時確定。

全域性執行上下文環境(物件)是在全域性作用域確定之後,js**馬上執行之前建立。

函式執行上下文環境(物件)是在呼叫函式時,函式體**執行前建立。

區別2函式作用域是靜態的,只要函式定義好了就一直存在,且不會再變化。

函式執行上下文環境(物件)是動態的,呼叫函式時建立,函式呼叫結束時上下文環境就會自動釋放。

聯絡執行上下文環境(物件)是從屬於所在的作用域。

全域性執行上下文環境= =》全域性作用域。

函式執行上下文環境= =》對應的函式作用域。

理解:多個上下級關係的作用域形成的鏈,它的方向是由內向外的。

查詢變數時就是沿著作用域鏈查詢。

查詢乙個變數的查詢規則:

①在當前作用域下的執行上下文物件中查詢對應的屬性,有則返回,否則進入②。

②在上一級作用域的執行上下文物件中查詢對應的屬性,有則返回,否則進入③。

③再次執行②的相同操作,直到全域性作用域,如果還沒找到就拋異常。

JS作用域和作用域鏈

什麼是js作用域?js作用域也就是js識別變數的範圍 1 全域性作用域 2 區域性作用域 3 e6的塊級作用域 全域性作用域 也就是定義在window下的變數範圍,在任何地方都可以訪問 區域性作用域 是只在函式內部定義的變數範圍 塊級作用域 簡單來說就是用let和const在任意的 塊中定義的變數都...

作用域 作用域鏈

理解 就是一塊 地盤 乙個 段所在的區域 它是靜態的 相對於上下文物件 在編寫 時就確定了 分類全域性作用域 函式作用域 沒有塊作用域 es6有了 作用隔離變數,不同作用域下同名變數不會有衝突 區別1全域性作用域之外,每個函式都會建立自己的作用域,作用域在函式定義時就已經確定了。而不是在函式呼叫時 ...

js 作用域鏈

作用域鏈 作用域鏈就是內部上下文的變數物件vo的列表,作用域鏈用來檢索上下文出現的識別符號,從而保證有序訪問所有變數和函式。乙個作用域鏈包括父級變數物件 variable object 作用域鏈的頂部 函式自身變數vo和活動物件 activation object 當查詢識別符號的時候,會從作用域鏈...