宣告變數常用的方法有兩種:
let跟constconst就像是貓的種類,有橘貓、虎斑、三花,種類不會輕易改變let就像是貓的體重,會因為是不是橘貓,或者是不是阿嬤養的,有很大的變化
在寫 JavaScript 時,我們經常需要把資料暫時儲存起來,方便後面重複使用。
假設今天有一個動物園,裡面有各式各樣的動物與資料需要管理。
如果沒有變數,每次想呼叫某隻動物的資料時,我們都得重新去叫他;但有了變數,就像為每隻動物配了一把專屬哨子——只要吹響哨子(呼叫變數名稱),對應的動物(資料)就會立刻跑過來。
const rabbitSpecies = '北極兔';
這行程式碼就像是:
const rabbitSpecies 打造一把名為「兔子品種」的哨子。= 把這把哨子指派到 北極兔 身上。rabbitSpecies,電腦就會立刻把 北極兔 叫過來。// 使用範例
console.log(rabbitSpecies); // 印出:北極兔
console.log(`可愛動物區最新引進了:${rabbitSpecies}`);
// 印出:可愛動物區最新引進了:北極兔
在 ES6 語法之後,主要使用 let 與 const 來宣告變數。
最大的差別就是裡面的資料會不會改變:const 就像是貓的種類,有橘貓、虎斑、三花,種類不會輕易改變let 就像是貓的體重,會因為是不是橘貓,或者是不是阿嬤養的,有很大的變化
const 是 Constant(常數) 的縮寫。一旦賦予值後,就不能再修改內容,適合用在固定不變的數值。
const catTypes = '三花';
當資料後續會改變時使用。
let catWeight = 10;
//這隻是阿嬤養的,所以比較有份量
早期 JavaScript 宣告變數的方式,因為作用域較鬆散(屬 Function Scope),容易引發變數覆蓋或提升(Hoisting)等意料之外的 Bug。
就像是容易鬆脫的柵欄,如果使用 var,動物園裡的動物很容易就會跑出來。會產生意外,因此不建議使用。
| 特性 | let | const | var |
|---|---|---|---|
| 作用域 | 區塊作用域 (Block Scope {}) | 區塊作用域 (Block Scope {}) | 函式作用域 (Function Scope) |
| 重新賦值 | 可以 | 不可以 | 可以 |
| 重複宣告 | 不可以 | 不可以 | 可以(容易混淆) |
| 宣告提升 (Hoisting) | 存取會觸發暫時性死區 (TDZ) | 存取會觸發暫時性死區 (TDZ)無法存取 | 會提升且值為 undefined |
當變數名稱比較長時,人眼會很難分辨,因此可以使用小駝峰命名法,來幫助我們快速了解這個變數代表什麼。
最推薦的命名方法,第一個單字全小寫,從第二個單字開始首字大寫(就像單峰駱駝)。
像是
elephantWeight大象重量
isOpenToday今天是否有開園
favoriteFood 最愛的食物
(參考資料:Wiki - 駝峰式大小寫)
$、_
let $zooName = '木柵動物園'; // ⭕ 可以
let _ticketPrice = 60; // ⭕ 可以
// let 1stAnimal = '獅子'; // ❌ 報錯
let animal1 = '獅子'; // ⭕ 可以
let、const、if、function 等已經被系統預留的單字)更多保留字可以查看W3Schools-JavaScript Reserved Words
嚴格區分大小寫:lion 與 Lion 在 JS 中被視為兩個完全不同的變數。
可使用中文,但強烈不建議:雖然中文變數名稱(如 let 獅子 = 1)可以使用,但容易在發生編碼錯誤,且不符合產業標準。
console.log() 印出結果console.log() 是除錯(Debug)時或確認目前程式碼是否如預期時最常使用的程式碼。
let animal = '長頸鹿';
let count = 4;
console.log(animal); // 印出:長頸鹿
console.log(animal, count); // 一次印出多個變數:長頸鹿 4
註解是給開發者看的說明文字,JavaScript 執行時會自動忽略它。
// 這是單行註解:紀錄貓咪目前的體重
let catWeight = 4.6;
/*
這是多行註解:
用來貓咪每日餵食清單與活動時間
*/
北極兔平常長這樣
(圖片來源:Unsplash - Isaac Demeester)
但是站起來長這樣,是有著大長腿的兔子類型
(圖片來源:Unsplash - Wildlife by Irina)