undefined和not defined差異
1. undefined 是什麼?
undefined 是一個 JavaScript 中的值,意思是「已經宣告但還沒被賦值」。
範例:
let a;
console.log(a); // 印出 undefined
解釋:
a有被宣告(let a;),只是沒有指定值,所以預設是undefined。
2. not defined 是什麼?
not defined 是一種錯誤訊息(ReferenceError),意思是「這個變數根本沒被宣告過」!
範例:
console.log(b); // ReferenceError: b is not defined
解釋:
b根本沒宣告過,直接使用就會報錯:「b is not defined」。
比較表:
| 狀態 | 說明 | 會不會報錯 | console.log() 結果 |
|---|---|---|---|
undefined | 變數有宣告但沒值 | 不會報錯 | undefined |
not defined | 變數根本沒宣告 | 會報錯 (ReferenceError) | 無法印出 |
小技巧(幫助你記憶)
-
undefined:是 JavaScript 給你的「預設值」。 -
not defined:是你「連名字都沒講」,JavaScript 找不到它。
延伸補充:typeof 的特例
console.log(typeof x); // "undefined"
雖然 x 沒宣告過,但 typeof 不會報錯,會回傳 'undefined'。這是 JavaScript 的特例之一。