
undefined與null的區(qū)別
字面的含義
聲明變量未定義:undefined;(例:var a;)
有定義,但內(nèi)容為空的對象:null。
從字面上來理解undefined和null其實(shí)相對比較簡單:
undefined表示的是聲明一個變量之后我們并沒有給它定義內(nèi)容。
null表示的是有定義,定義的是一個空對象。
最初的區(qū)分方式
null是一個表示"無"的對象,轉(zhuǎn)為數(shù)值時為0;
undefined是一個表示"無"的原始值,轉(zhuǎn)為數(shù)值時為NaN。
目前的用法
null表示"沒有對象",即該處不應(yīng)該有值。
null出現(xiàn)在哪里?
對于函數(shù)的參數(shù),為了表示該函數(shù)的參數(shù)不是對象,會使用null。這種用法在傳參時經(jīng)常遇到此類應(yīng)用。
對象原型鏈的終點(diǎn)是null。
undefined表示"缺少值",就是此處應(yīng)該有一個值,但是還沒有定義。
undefined會出現(xiàn)在哪里?
1、變量被聲明了,但沒有賦值,默認(rèn)為undefined
2、調(diào)用函數(shù)時,應(yīng)該提供的參數(shù)沒有提供,該參數(shù)默認(rèn)為undefined
3、對象沒有賦值的屬性,該屬性的值默認(rèn)為undefined
4、函數(shù)沒有返回值時,默認(rèn)返回undefined