JavaScript 基礎
null、undefined 與 undeclared 的區別?
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 評分
