初級 免費 ⏱ 15:00
02-1 變數革命:為什麼 var 已死?
為什麼 2026 年絕對不該再用 var?一次搞懂 let 與 const 的正確使用時機,以及「預設 const」的現代開發準則。
02-1 變數革命:為什麼 var 已死?
👋 **老師的話 (Script)**:
"嘿,歡迎回到課程!
如果你在網路上找到的教學還在教你用 `var` 來宣告變數,請立刻關掉那個網頁。
那是十年前的寫法了!
在 2026 年,我們只有兩個選擇:let 和 const。
而且我會告訴你一個資深工程師的秘密:95% 的情況下,你應該只用 const。
為什麼?讓我們看下去。“
1. 歷史的眼淚:var 的災難
以前我們用 var,但我現在要告訴你它為什麼被淘汰。
- 你可以重複宣告:
var x = 1; var x = 2;竟然不會報錯?這在大型專案是災難。 - 它會「洩漏」出去:
var沒有區塊作用域 (Block Scope)。
// ❌ 錯誤示範 (以前的寫法)
if (true) {
var secret = "I am secret";
}
console.log(secret); // 竟然印出來了!變數污染了全域!
2. 現代救星:let 與 const
ES6 (2015) 之後,JavaScript 終於正常了。
- Block Scope:變數只活在大括號
{}裡面。出了括號就死掉了(記憶體回收),這才安全。
規則一:預設使用 const (常數)
只要這個變數之後不會被「重新賦值 (=)」,就一律用 const。
這代表「承諾」:我不打算改變它。
const birthYear = 1995;
// birthYear = 1996; // ❌ 報錯!保護你不會不小心改到重要資料。
規則二:真的要變,才用 let
只有像計數器、開關狀態這種真的會變的東西,才用 let。
let score = 0;
score = 10; // ✅ 合法
3. LAB 01: 變數生存範圍實測
🧪 練習時間
1. 打開 VS Code,建立
02-1-scope.js。
2. 輸入以下程式碼並用 Bun 執行:
if (true) {
let ghost = "👻";
const zombie = "🧟";
var monster = "👹";
}
console.log(monster); // 印出 👹 (這就是 var 的壞處!)
// console.log(ghost); // ❌ 報錯:ghost is not defined (這才是對的!)
Knowledge Check
選擇答案後點「提交答案」查看結果