作用域鏈及其相關概念

2022-06-06 10:03:11 字數 1735 閱讀 5164

//

作用域鏈

var title ="鏈條";

function

f1()

f3();

//f3鏈條

} f2();

//f2鏈條

} f1();

//f1鏈條

定義:

變數在當前環境,內部環境,內部深層環境都其作用的現象形成了乙個鏈條,這個鏈條就被稱為變數的「作用域鏈」

特點:外部環境變數,可以給內部環境使用

作用域鏈的作用

1.變數必須「先宣告,後使用」

函式可以「先使用,後宣告」,原因是函式有預載入過程,本質還是函式宣告在前,使用在後

//

變數必須"先宣告。後使用 "

//同名的函式和變數的執行有順序問題

var getinfo = "school";

getinfo();

//itcast

function

getinfo()

2.內部環境可以訪問外部環境的變數,反之不然

var  age = 20;

function

f1()

f1();

console.log(height);

//外環境訪問內環境變數(不允許)

3.變數的作用域是宣告時決定的,而不是執行時

var food = "milk";

function

f1()

function

f2()

f2();

函式是在全域性宣告的,而呼叫時在f2內部環境呼叫的,由此可以發現,變數的作用域是宣告的時候決定的,而不是在執行時

活動物件 ao active object

1,js**執行是有環境的

2,該環境定義了其有權訪問的其他資料

3,環境有乙個與之相關的活動物件ao

4,環境中所有的變數和函式都是活動物件的屬性

5,全域性環境是最外圍的執行環境,活動物件是window物件

6,執行環境中的**執行完畢後會被銷毀

執行環境以及順序優先順序

var height =175; //

外部環境變數

function

f1()

}f2(180);

}f1();

優先順序  內部環境變數》本環境函式》形參》 外部環境變數
全域性變數和區域性變數

全域性變數:全域性變數 其是活動物件 window的成員資訊

區域性變數:其在一定範圍內可以看做是"全域性變數",其在本環境,內部環境,內部深層環境都可以被訪問

作用域 作用域鏈

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

作用域和作用域鏈

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

作用域和作用域鏈

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