JavaScript – var & let

發布日期:2023/04/14
瀏覽次數:127

當使用var宣告變數時,如果在函數內宣告,則該變數的使用範圍是它所在的函數內;如果它在函數外宣告,那使用範圍則是整個全域範圍。這種作用域被稱為”函數作用域”或”全域作用域”。

在ES6(ECMAScript 2015)中,JavaScript引入了letconst關鍵字。當使用let宣告變數時,其作用域僅限於它所在的代碼區塊,這種作用域被稱為”區塊作用域”。

*代碼區塊指的是一段被大括號框起的程式碼區塊。

以下是一個letvar作用域的範例:

function example() {
  var x = 1;
  let y = 2;

  if (true) {
    var x = 3;
    let y = 4;
    console.log(x); // 輸出 3
    console.log(y); // 輸出 4
  }

  console.log(x); // 輸出 3
  console.log(y); // 輸出 2
}

example();


在這個範例中,我們創建了一個名為example的函數。我們使用var宣告一個名為x的變數,並將其設置為1,並使用let宣告一個名為y的變數,並將其設置為2。然後,我們創建了一個if語句,其中我們使用var宣告一個名為x的變數,並將其設置為3。我們使用let宣告一個名為y的變數,並將其設置為4。在if語句的內部,我們輸出x和y的值,它們分別為3和4。然後,在if語句的外部,我們再次輸出x和y的值,此時它們分別為3和2。

這是因為在if語句內部,我們使用var宣告的變數x會將其值改為3,這會影響if語句外部的x的值。但是,由於let宣告的變數y具有區塊作用域,因此在if語句外部,y的值仍然是2,並且不會受到if語句內部y值的影響。

Like