JavaScript 在 ECMAScript 6 中引入了 let 關鍵字,為比較的變數提供了更細粒度的範圍與傳統的 var。
主要差異在於變數範圍界定。用 var 宣告的變數具有函數級作用域,這意味著可以在封閉函數內的任何位置存取它們。另一方面,用 let 宣告的變數具有區塊級作用域,這意味著它們只能在定義它們的直接區塊內存取。
區塊作用域:
臨時死區:
考慮以下程式碼片段:
function run() { var foo = "Foo"; let bar = "Bar"; console.log(foo, bar); // Foo Bar { var moo = "Mooo" let baz = "Bazz"; console.log(moo, baz); // Mooo Bazz } console.log(moo); // Mooo console.log(baz); // ReferenceError } run();
在此範例中,foo(用var 聲明)是可以在整個函數中訪問,而bar(用let 宣告)只能在巢狀區塊內存取。由於其區塊級作用域,嘗試存取區塊外部的 baz 會導致 ReferenceError。
注意: 在大多數現代 JavaScript 開發中,let 優於 var,因為它具有更嚴格的作用域和增強功能程式碼可讀性。
以上是JavaScript 中的 `let` 與 `var`:變數作用域的主要差異是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!