前言:
雖然前面有些定義還沒有完整的解釋,但還是後面再說吧,
誰想一直看理論啊(摔本子)
變數就像一個寫上標籤的盒子,值就是要放入盒子的東西。
JS 會將變數存在記憶體中,以便未來取用。
我們告訴 JS 我們需要一個盒子,並且寫上標籤,這個動作就是宣告變數,
盒子裡面放入值,就是賦值(assign):
const a = 15;
// 宣告時,最前面寫 關鍵字,後方接 變數名稱
// 如果有預設值,可以在宣告時直接賦予
這裡用 const 這個關鍵字告訴 JS 我要宣告一個叫做 a 的常數,值是 15,
未來需要使用 a 來做計算時,就可以取用。
反之,如果沒有宣告,它會不知道我們要幹嘛:
a = 15;
// 得到報錯訊息:Uncaught ReferenceError: a is not defined
// 代表 a 沒有被定義
上面例子中使用了 const 來宣告,但 JS 還有另外兩種常見關鍵字:let、var。
const
- 宣告不可變動之常數
用 const 宣告時,就不能重新賦值 or 重新宣告
const myName = "asdf";
myName = "qwer"; // 重新賦值時會報錯
const myName = "qwer"; // 重新宣告也會報錯
// TypeError: Assignment to constant variable
let
- 宣告可變動之變數
反之,用 let 宣告時,就能重新賦值,但一樣不能重新宣告
let kingOfThePirates = "MonkeyDLuffy";
kingOfThePirates = "Luffy"; // 重新賦值沒問題
let kingOfThePirates = "Luffy"; // 無法重新宣告區塊範圍變數
var
- 宣告可變動之變數
跟 let 很像,可以重新賦值,不同的是 var 可以重新宣告
乍看下來很像沒什麼,但如果今天是一個幾萬行的程式碼,
如果用 var 宣告了一個 a 變數,某一天再用 var 宣告一次 a,
這時候程式碼裡的 a 變數就被污染了,
因為不確定這一行取用的 a 到底是哪一次宣告的。
var examRange = "chapter12";
examRange = "chapter13"; // 重新賦值沒問題
var examRange = "chapter1";; // 重新宣告不會報錯 但是會造成問題
所以 var 最好不要用,不然除錯的時候會很想揍自己。
現在這三個關鍵字先這樣記就好,等到解釋作用域的時候再完整說明一次。
變數命名有些習慣要遵守⭐️
myName
預告:接下來講資料型態 data type(給自己的備忘)