在JavaScript中,變數宣告決定了在程式碼中如何使用和修改變數。在ES6之前,只能使用var來宣告變數 ,但現在有兩個新的關鍵字 let 和 const,它們提供了更多的選擇和靈活性。
var是ES6以前的變數宣告方法,它可以用於宣告全域變數和區域變數。
var宣告的變數可以被重複宣告,因此可能會導致變數覆蓋的問題。
可能會存在區域變數覆蓋全域變數,或者在for loop中循環變數洩漏為全域變數的副作用發生。
此外,var宣告的變數存在"變數提升"現象,這意味著它們可以在宣告之前被訪問。
var x = 10;
var x = 20; // 可以被重複宣告
function test() {
console.log(y); // undefined
var y = 30;
}
let是一種新的區域變數宣告方法,它在宣告後不能被重複宣告。let宣告的變數不存在"變數提升"現象,因此必須在宣告之後才能訪問變數。
let x = 10;
let x = 20; // SyntaxError: Identifier 'x' has already been declared
function test() {
console.log(y); // ReferenceError: Cannot access 'y' before initialization
let y = 30;
}
const是一種新的常數宣告方法,它可以用於宣告不可更改的值。const宣告的變數必須在宣告時進行初始化,並且不能被重新賦值。const宣告的變數不存在"變數提升"現象。
const x = 10;
x = 20; // TypeError: Assignment to constant variable.
const y; // SyntaxError: Missing initializer in const declaration
使用 let 和 const 宣告變數可以讓程式碼更為清晰和易於維護。如果需要修改變數值,變量宣告使用 let;如果需要定義不可變的值,變量宣告使用 const。