接下來這篇要介紹的是:undefined / is not defined / null
看起來都像 "沒有",但其實這三個個別表達了不同的意思
變數宣告後但還未賦值給它時,它的值就是 undefined
let aa
console.log(aa) // undefined
是一個特殊的值,可以表示 沒有值 或 空
通常是用來表示變數應該有一個值,但目前暫時是空的,與 undefined 不同,undefined 比較像是一個初始化後默認的狀態
較特別的一點是 null 的型態是 object
console.log(typeof null) // object
console.log(typeof undefined) // undefined
undefined 若做數字運算會得到 NaN
null 運算時會被當作 0
1 + null // 1
1 + undefined // NaN
如果在沒有宣告變數的情況下使用變數,會導致 ReferenceError,代表變數未定義
這與 undefined 不同,undefined 不會出錯,它只是表示變數宣告後沒有賦值
而 'is not defined' 是個錯誤,表示變數根本不存在
a + 1 // ReferenceError: a is not defined