上一課: 第 1 課:認識 JavaScript 與執行環境 | 下一課: 第 3 課:資料型態與 typeof
第 2 課:變數與常數(let / const)
課程摘要:本課介紹 let 與 const 的差異、宣告與指派方式、以及重新指定(reassignment)規則,幫助你在程式中正確管理資料。
基本資訊
- 難度:初階
- 預估時間:20 分鐘
- 先修需求:能在瀏覽器 Console 執行簡單程式(第 1 課)
- 關鍵字:let, const, 變數, 常數, 重新指定, 宣告
學習目標
- 能用
let宣告可重新指定的變數,並說明其用途。 - 能用
const宣告不可重新指定的常數,並辨識適合使用情境。 - 理解「宣告(declare)」、「指派(assign)」與「重新指定(reassign)」的差異。
課程大綱
- 什麼是變數與常數
let與const的差異- 宣告與指派:最佳實務
- 常見錯誤示例與除錯
核心概念解說
- 變數(variable):可儲存程式中會改變的資料;多用
let。 - 常數(constant):宣告後不可重新指定;用
const。 - 宣告 vs 指派:宣告建立名稱;指派把值放進名稱;重新指定是改變既有名稱所對應的值。
// let:可重新指定 let count = 1 // 宣告 + 指派 count = 2 // ✅ 重新指定 OK // const:不可重新指定 const pi = 3.14159 // pi = 3 // ❌ TypeError: Assignment to constant variable.
常見誤解 / 雷點
- ❌ 以為
const代表「無法變動任何內容」。事實上const是「無法重新指定變數名稱指向的值」。若值是物件/陣列,其內容仍可變(但名稱不可改指向別的值)。 - ❌ 認為
var與let完全相同。實務上建議以let/const為主。
互動式範例(可輸入代碼看到結果)
範例說明:在下方輸入區試著宣告 let 與 const,並嘗試重新指定。點擊「執行」後觀察結果與 Console。
(輸出區會顯示回傳值;更多細節請看瀏覽器 Console)
常見錯誤與除錯指南
TypeError: Assignment to constant variable.:你在對const變數做重新指定。ReferenceError:變數尚未宣告就使用(請確認宣告順序)。- 提示:先最小化程式碼片段,逐步加回功能來定位問題。
最佳實務 / 風格建議
- 預設使用
const;只有在需要重新指定時才改用let。 - 語義化命名:名詞用複數/單數清楚表意(如
user/users)。 - 宣告即指派初始值,避免產生
undefined帶來的不確定性。
名詞解釋
- 宣告(declare):建立變數/常數的名稱。
- 指派(assign):將值放入已宣告的名稱。
- 重新指定(reassign):把名稱改指向新的值(
let可、const不可)。
引導式練習(Step-by-step)
- 用
const宣告PI並設為3.14,試著重新指定觀察錯誤。 - 用
let宣告count並累加至 3,印出過程。 - 宣告
const陣列list,用push新增項目並觀察結果。
小測驗(附解析)
- 哪個敘述正確?
A.const絕對不可變(包含內容)
B.let與var行為完全一致
C.const不能重新指定,但若值是物件/陣列,其內容可變更
解答:C - 下列程式碼會噴什麼錯?
const n = 1 n = 2
解析:對const做重新指定,會拋出 TypeError。
複習與下一步
做過上述練習後,你已能辨識 let/const 的使用情境。下一課將進一步介紹「資料型態與 typeof」。
版本資訊:2025-10-22 新增互動範例與小測驗。
版權/授權:本頁程式碼與素材可用於教學與個人專案(請保留出處)。
