1. 程式人生 > >來理解undefined 和 null 區別

來理解undefined 和 null 區別

之前雖然也知道這兩個之間的區別,但是讓我描述的話,感覺上還是說的不是很清楚。今天也詳細看了一次這個知識點,現在來說說這兩者間的區別。

null: Null型別,代表“空值”,代表一個空物件指標,使用typeof運算得到 “object”,所以你可以認為它是一個特殊的物件值。

undefined: Undefined型別,當一個聲明瞭一個變數未初始化時,得到的就是undefined。

null是javascript的關鍵字,可以認為是物件型別,它是一個空物件指標,和其它語言一樣都是代表“空值”,不過 undefined 卻是javascript才有的。undefined是在ECMAScript第三版引入的,為了區分空指標物件和未初始化的變數,它是一個預定義的全域性變數

。沒有返回值的函式返回為undefined,沒有實參的形參也是undefined。

javaScript權威指南: null 和 undefined 都表示“值的空缺”,你可以認為undefined是表示系統級的、出乎意料的或類似錯誤的值的空缺,而null是表示程式級的、正常的或在意料之中的值的空缺。

哈哈哈!!是不是感覺不是在說人話。如果和我一樣不是很能聽懂,請看下面。

javaScript高階程式設計: 在使用var宣告變數但未對其加以初始化時,這個變數的值就是undefined。   null值則是表示空物件指標。

最後,我的理解就是: undefined是訪問一個未初始化的變數時返回的值,而null是訪問一個尚未存在的物件時所返回的值。因此,可以把undefined看作是空的變數,而null看作是空的物件。

在定義一個想儲存物件的變數時,就可以讓該變數先儲存null值,這樣既能體現null是一個空指標物件,也能更好的區分null和undefined。