今天來談談宣告變數的3種不同方式:let、const和var。
首先,let和const是在ES6中引入的,它們屬於modern JavaScript,而使用var來宣告變數則是舊的做法。
我們使用let來宣告一個值可以被改變的變數:
let age = 20;
age = 21;
let也適用於宣告一個擁有empty value的變數:
let lunch;
lunch = "pizza";
而const則被用來宣告那些值無論在何時都不應該被改變的變數,換句話說,使用const宣告的變數,其值是無法被改變的,譬如:
const birthYear = 2003;
birthYear = 2013;
這時候就會出現錯誤(Assignment to constant variable)。
而既然它的值不能被改變,那可想而知,我們就不能使用const來宣告一個擁有empty value的變數:
const weather;
上述的寫法是不行的,會出現Missing initializer in const declaration的訊息,這代表在使用const的時候,我們必須賦予所宣告的變數一個初始值才行。
除了let和const之外,在JavaScript中還有第三種宣告變數的方法,那就是var,是在ES6之前用來宣告變數的方式,雖然我們應該要避免去使用var,但仍須了解var是如何運作的,因為可能會在舊的程式碼或舊的教學中看到。
和let一樣,我們可以改變var所宣告的變數的值,不同的是,let是block-scoped,而var是function-scoped。