作用域和作用域鏈

2021-08-21 04:27:06 字數 574 閱讀 5537

var a = 10;

function f1(x,y)

f1();

console.log(b); 此時b輸出5,因為b=5為隱式的全域性變數

在函式外面使用var 宣告的變數都是全域性變數,作用範圍是程式執行的地方.

全域性作用域(函式除外)

函式的形參是區域性變數

在函式內部,不使用var 定義的變數,叫隱式全域性變數

區域性作用域(函式體內的執行環境)

function fn(a) //因為這裡函式沒有呼叫,所以為啟用,裡面的東西不會執行

console.log(a);///所以會報錯

console.log(b);/報錯 區域性變數

做函式題時記得想返回值,呼叫,切記!

/當訪問乙個變數時,會先c從本作用域出去找變數,若找不到則向上一級作用域中去找,一次類推,就形成了乙個作用域鏈

例:var a = 100;

var b = 200;

function f1()

f3();

} f2();

}f1();

作用域和作用域鏈

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

作用域和作用域鏈

執行環境定義了變數和函式有權訪問的其他資料,決定了他們各自的行為。每個執行環境都有與之對應的變數物件 variable object 儲存著該環境中定義的所有變數和函式。我們無法通過 來訪問變數物件,但是解析器在處理資料時會在後台使用到它。執行環境有全域性執行環境 也稱全域性環境 和函式執行環境之分...

作用域和作用域鏈

作用域與作用域鏈 作用域屬於乙個函式,乙個函式產生了不一樣的作用域 函式名.scope 函式的隱式屬性 scope 指的就是作用域,其中儲存了執行期的上下文的集合,而這一集合就是作用域鏈 查詢變數 從作用域鏈的頂端依次向下查詢 在那個函式裡面查詢變數,就上那個函式的作用域鏈的頂端依次向下查詢變數 2...