undefined與null的區(qū)別
表示變量沒有被聲明或者已經(jīng)聲明但未賦值。換句話說,如果我們試圖訪問一個不存在的變量或?qū)ο髮傩裕敲茨J返回的就是
undefined
表示一個變量被刻意設定為沒有任何值或者說空值。換言之,當程序員想明確設定一個變量沒有值,可以將其設定為
null
undefined
,而null
則需要程序員顯式設定。JavaScript從不會自動將變量設為null
undefined
并非有效的值,但是null
當我們檢查這兩個值的類型時,
undefined
的類型(typeof)是undefined
,而null
的類型(typeof)卻是object
。雖然這看起來有些違反直覺,但這是由于歷史原因?qū)е碌?,至今還未被修復。
undefined
和null
undefined
或null
轉(zhuǎn)成布爾型時,它們都返回false
。因此我們稱它們?yōu)?/span>值。
undefined
或null
==
進行比較時,Javascript會認為undefined
和null
相等。這是因為雙等號在比較時會進行類型轉(zhuǎn)換。然而,如果我們采用三等號===
進行嚴格比較(不進行類型轉(zhuǎn)換),那么undefined
和null
總結以上的信息,我們就能更好地理解'undefined'和'null'在JavaScript中的應用,同時也能更準確地處理出現(xiàn)這兩種類型的情況。
標簽: