Variables & Constants
先來想想,如果今天我們的程式碼裡面有東西要被反覆地用到怎麼辦? 絕大多數的程式語言有提供我們儲存資料的方法,包含變數 (Variables) 與常數 (Constants)。
他們的差別在可變性 (mutability),變數內容可變更,而常數不行。
常數也太難用了吧!
我一開始也是這麼想。 不過隨著經驗累積,我的意見變得恰好相反:常數超好用超好用超好用。 因為常數大大降低了程式運行時的許多 變異性 ,讓運行情況變得更容易預期。
我們來看看在 JS 中怎麼使用變數與常數。
Using Variables & Constants
將資料存進變數與常數的方法很簡單,我們來看看下面的程式碼片段:
// main.js
let greetingVar = "Hello World"; // variable
const greetingConst = "Hello World"; // constant
透過 let 關鍵字(keyword) 宣告的是變數,而 const 宣告的是常數。
從此以後,greetingVar 跟 greetingConst 指的都是 "Hello World"。我們來把它們印出來看看:
...
console.log(greetingVar);
console.log(greetingConst);
執行:
$ node main.js
Hello World
Hello World
對吧?
現在我們來感受一下他們的差別,我們繼續加更多程式碼:
greetingVar = "Hi There";
console.log(greetingVar);
greetingConst = "Hi There"; // This line can cause an Error!
執行結果會是:
$ node main.js
Hello World
Hello World
Hi There
/tmp/main.js:10
greetingConst = "Hi There"; // This line can cause an Error!
^
TypeError: Assignment to constant variable.
...
看到了吧?對常數動手腳可是會出包的。
所以說,自宣告起
greetingVar在被修改前 都會是"Hello World"greetingConst自始至終都會是"Hello World"
Naming
Rule
我們想給變數和常數命什麼名字都可以嗎?答案當然是不行。我來舉幾個例子:
- Keywords 中的各種詞
- 數字開頭
01student - 符號開頭
#harvey
tip
要把所有 keywords 倒背如流是很難的,所以我建議記得不要拿數字跟符號開頭就好。
Keyword 什麼的,遇到出狀況了再改就好。
Convention
為了程式碼的風格統一好讀,程式碼有各種命名或排版上的慣例。JS 有些命名上的慣例。我這邊舉個常見的:變數常數用 camelCase 命名,如 bestTaInDbms。