犀牛書學習筆記2:作用域
阿新 • • 發佈:2018-12-12
作用域(scope):
function checkscope() { // 宣告一個全域性函式
var localScope = "local"; // 宣告一個區域性變數
}
globalScope; // =>"global" 獲得全域性變數
//localScope; // => Uncaught ReferenceError: checlscope is not defined
- 詞法作用域(lexical scope)(3.10.1節)
-
- 在函式外宣告的變數叫全域性變數,全域性變數在全域性都有定義,擁有全域性作用域(globe scope)。
- 在函式內宣告的變數叫區域性變數,區域性變數在區域性(函式體內)有定義,超出了這個“區域”,則無法被訪問,區域性變數擁有區域性作用域(local scope)。
- 函式作用域和塊級作用域
- 區域性變數的優先順序高於同名的全域性變數。(@@@有作用域鏈維護)
- 每個函式都有它自己的作用域
- 巢狀作用域
- 作用域鏈(scope chain)
- 閉包(Closure)(8.6節)