FE Interview Hub
JavaScript 基礎

null、undefined 與 undeclared 的區別?

AI 練習作答

null、undefined 與 undeclared 的區別

undefined

變數已宣告尚未賦值時,其值為 undefined

let a;
console.log(a); // undefined

function foo(x) { return x; }
foo(); // undefined(參數未傳入)

null

刻意賦予的「空值」,代表「沒有物件」或「無值」:

let user = null; // 明確表示目前沒有使用者
console.log(typeof null); // 'object'(歷史遺留 bug)

undeclared

變數從未宣告,直接存取會拋出 ReferenceError

console.log(b); // ReferenceError: b is not defined

可用 typeof 安全地檢查是否 undeclared:

typeof b; // 'undefined'(不會報錯)

比較表

特性 null undefined undeclared
型別 object undefined 存取報錯
意義 刻意設為空 已宣告未賦值 從未宣告
賦值方式 手動賦予 預設值
相等性 null == undefined → true null === undefined → false

✦ AI 模擬面試

輸入你的答案,AI 即時分析精準度與改進空間

登入後即可使用 AI 評分