JavaScript
[JS] 作用域 (Scope) 與作用域鏈 (Scope Chain)

作用域 (Scope) 與作用域鏈 (Scope Chain)

作用域 (Scope)

作用域是指程式中值或表達式可被存取的範圍。全域作用域涵蓋整個程式,函式作用域僅限於函式內部,而塊級作用域則限於塊級中的 let 或 const 變數。

以程式碼示例:

let a = "全局作用域";
 
function call() {
  console.log(a); // 全局作用域
  a = "哈囉全局作用域~~";
}
call();
console.log(a); // 哈囉全局作用域~~
function scope() {
  let a = "函式作用域";
  console.log(a); // 函式作用域
}
function checkScope() {
  if (true) {
    let a = "塊級作用域";
    var b = "函式作用域";
  } else {
    console.log(b); // 函式作用域
  }
}

作用域鏈 (Scope Chain)

作用域鏈是指當 JavaScript 使用變數時,先在當前作用域中尋找,若找不到則往父層作用域尋找,直到全域作用域或報錯。

let a = 100;
function find() {
  console.log(a); // 100
}
find();

References