JavaScript 基礎

在 JavaScript 中用 var, let, 以及 const 有什麼差別?

AI 練習作答

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 評分