作用域 作用域鏈

2021-10-07 22:08:03 字數 663 閱讀 7017

理解

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

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

分類全域性作用域

函式作用域

沒有塊作用域(es6有了)

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

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

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

函式執行上下文環境是在呼叫函式時, 函式體**執行之前建立

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

上下文環境是動態的, 呼叫函式時建立, 函式呼叫結束時上下文環境就會被釋放

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

全域性上下文環境==>全域性作用域

函式上下文環境==>對應的函式使用域

理解多個上下級關係的作用域形成的鏈, 它的方向是從下向上的(從內到外)

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

查詢乙個變數的查詢規則

在當前作用域下的執行上下文中查詢對應的屬性, 如果有直接返回, 否則進入上一級作用域,在上一級作用域的執行上下文中查詢對應的屬性, 如果有直接返回, 否則進入本作域的上一級作用域, 直到全域性作用域, 如果還找不到就丟擲找不到的異常

作用域,變數作用域,作用域鏈知識

第2章 變數作用域 第3章 作用域鏈 預覽 1.全域性作用域 整個script標籤下 或者是單獨的js檔案 外部js 2.區域性作用域也叫 函式作用域 在函式內部就是區域性作用域 這個 的名字 變數 只在函式內部起作用和效果 3.不同作用域下,定義相同變數名是不衝突的。如果是在同一作用域宣告2個相同...

作用域和作用域鏈

全域性作用域 全域性的變數執行環境 函式作用域 函式內部的變數執行環境 每個函式都有自己的執行環境,當執行流進入乙個函式時,函式的環境就會被推入乙個環境棧中。函式執行之後,棧將環境彈出,把控制權返回給之前的執行環境。全域性作用域只要頁面不解除安裝,就一直存在,不釋放。函式每次在呼叫時,都會形成乙個作...

作用域和作用域鏈

var a 10 function f1 x,y f1 console.log b 此時b輸出5,因為b 5為隱式的全域性變數 在函式外面使用var 宣告的變數都是全域性變數,作用範圍是程式執行的地方.全域性作用域 函式除外 函式的形參是區域性變數 在函式內部,不使用var 定義的變數,叫隱式全域性...