JavaScript的最初版本是這樣區(qū)分的:null是一個表示"無"的對象骂束,轉(zhuǎn)為數(shù)值時為0耳璧;undefined是一個表示"無"的原始值,轉(zhuǎn)為數(shù)值時為NaN展箱。
null表示"沒有對象"旨枯,即該處不應該有值。
用法:
(1)作為函數(shù)的參數(shù)混驰,表示該函數(shù)的參數(shù)不是對象攀隔。
(2)作為對象原型鏈的終點。
Object.getPrototypeOf(Object.prototype) // null
undefined表示"缺少值"栖榨,就是此處應該有一個值
用法:
(1)變量被聲明了昆汹,但沒有賦值時,就等于undefined婴栽。
(2)調(diào)用函數(shù)時满粗,應該提供的參數(shù)沒有提供,該參數(shù)等于undefined愚争。
(3)對象沒有賦值的屬性映皆,該屬性的值為undefined挤聘。
(4)函數(shù)沒有返回值時,默認返回undefined捅彻。