讓我們先談談它們的相似之處。

nullundefined 都是 JavaScript 的原始類型。

undefined 的意思是變數已聲明,但尚未賦值。

let age // age 是 undefined
let age = null // age 是 null

注意:訪問尚未聲明的變數會引發 ReferenceError: <variable> is not defined 錯誤,但這並不意味著它是 undefined

如何檢查變數是否為 null?使用比較運算符,例如 age === null

對於 undefined 也是一樣:age === undefined

在這兩種情況下,你都可以進行檢查:

if (!age) {

}

這將同時匹配 nullundefined

你也可以使用 typeof 運算符:

let age
typeof age //'undefined'

儘管 null 被評估為一個對象,但它實際上是一個原始類型:

let age = null
typeof age //'object'