JavaScript 基礎
在 JavaScript 中用 var, let, 以及 const 有什麼差別?
var、let、const 的差別
作用域(Scope)
if (true) {
var a = 1; // 函式作用域(或全域)
let b = 2; // 區塊作用域
const c = 3; // 區塊作用域
}
console.log(a); // 1(可存取)
console.log(b); // ReferenceError
console.log(c); // ReferenceError
提升(Hoisting)
console.log(x); // undefined(var 提升但未初始化)
var x = 5;
console.log(y); // ReferenceError(暫時性死區)
let y = 5;
重複宣告
var a = 1; var a = 2; // ✅ 合法
let b = 1; let b = 2; // ❌ SyntaxError
const c = 1; const c = 2; // ❌ SyntaxError
重新賦值
var a = 1; a = 2; // ✅ 合法
let b = 1; b = 2; // ✅ 合法
const c = 1; c = 2; // ❌ TypeError
比較表
| 特性 | var |
let |
const |
|---|---|---|---|
| 作用域 | 函式 | 區塊 | 區塊 |
| 提升 | ✅(undefined) | ✅(TDZ) | ✅(TDZ) |
| 重複宣告 | ✅ | ❌ | ❌ |
| 重新賦值 | ✅ | ✅ | ❌ |
最佳實踐:優先使用
const,需要重新賦值時用let,避免使用var。
✦ AI 模擬面試
輸入你的答案,AI 即時分析精準度與改進空間
登入後即可使用 AI 評分
