什麼是作用域鏈?
作用域鏈【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 定義的變數,叫隱式全域性...