null
代表「空值」(有被賦予為空的值),轉為數值時為 0;undefined
代表「未定義」的原始值(尚未被賦予值),轉為數值時為 NaN
undefined
是變數被宣告了但沒有賦值,屬於原始型別之一;not defined
是變數沒有被宣告,不屬於原始型別,是執行程式時的錯誤訊息 (runtime error),需要被修正。
在 Javascript 中,當我們宣告了一個變數但沒有賦值時, Javascript 會給予變數預設的值 undefined
,意思是「未定義」的值。
實際上 Javascript 在執行時是:
undefined
並不代表什麼都沒有,它在 Javascript 中是一個型別也是一個值,一樣會佔據記憶體空間。undefined
代表著變數最原始的狀態,並非人為操作的結果。
typeof undefined
會回傳 undefined
undefined
轉為數值時為 NaN
:Number(undefined)
會回傳 NaN
undefined
常見於以下幾種情況:
undefined
undefined
undefined
undefined
undefined
null 意思是「沒有值」的空值。是用來讓開發者來宣告「空值」的 (Javascript 從來不會將值設定為 null),例如:曾經有資料,使用 null
將其清空。
Number(null)
會回傳 0console.log(null + ''); // 'null'
typeof null
會回傳 object
(JS 的一個 bug)null
Boolean(undefined) // false
, Boolean(null) // false
)