? ? ?null是JavaScript語言的關(guān)鍵字,它表示一個特殊值,常用來描述“空值”。對null執(zhí)行typeof預(yù)算,結(jié)果返回“Object”,也就是說,可以將null認(rèn)為是一個特殊的對象值,含義是“非對象”。但實際上,通常認(rèn)為null是它自由類型的唯一一個成員,它可以表示數(shù)字、字符串和對象是無值的。
? ? undefined同樣表示值的空缺,用未定義的值表示更層次的”空值“。它是變量的一種取值,表明變量沒有初始化。如果查詢對象屬性或者數(shù)組中元素的值時返回undefined則說明這個屬性或元素不存在。如果函數(shù)沒有返回任何值,則返回undefined。引用沒有提供實參的函數(shù)形參的值也只會得到undefined。undefined是預(yù)定義的全局變量。
? ? ?通常我理解undefined是表示系統(tǒng)級的、出乎意料的或類似錯誤的值,而null表示程序級、正常的或在意料中的值的空缺,一般給變量、屬性賦值,最好選擇null。