什麼是作用域鏈?

2021-10-01 07:37:04 字數 418 閱讀 9860

什麼是作用域鏈?

作用域鏈【scop】

-作用域是一層包裹一層,從而形成作用域鏈,通過scope完成

-作用域導致了變數的使用規則

-1.在自己的作用域中找,如果沒有就去父域中找,直到找到全域性域位置

變數查詢方式;

1.先看宣告,再看賦值,賦值使用就近原則

注意:變數名=值 不是全域性的,是變數賦值;不是宣告

-因為 在預編譯階段:window下沒有這個屬性:只有在解析執行的時候;才給window新增該屬性並賦值

作用域鏈的存在:是為可以讓在 小作用域 中【使用變數】可以訪問到 大作用域 中的變數

–jsvar a=1

function b()

b()//如果沒有作用域鏈;a is not defind

因為有作用域鏈 所有 輸出 1

作用域 作用域鏈

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

作用域和作用域鏈

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

作用域和作用域鏈

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