JavaScript undefined及null區(qū)別實(shí)例解析
在JavaScript中,將一個(gè)變量賦值為undefined或null,老實(shí)說(shuō),幾乎沒(méi)區(qū)別。
var a = undefined;
var a = null;
上面代碼中,a變量分別被賦值為undefined和null,這兩種寫(xiě)法幾乎等價(jià)。
undefined和null在if語(yǔ)句中,都會(huì)被自動(dòng)轉(zhuǎn)為false,相等運(yùn)算符甚至直接報(bào)告兩者相等。
if (!undefined)
console.log('undefined is false');
// undefined is falseif (!null)
console.log('null is false');
// null is falseundefined == null
// true
上面代碼說(shuō)明,兩者的行為是何等相似!
既然undefined和null的含義與用法都差不多,為什么要同時(shí)設(shè)置兩個(gè)這樣的值,這不是無(wú)端增加JavaScript的復(fù)雜度,令初學(xué)者困擾嗎?Google公司開(kāi)發(fā)的JavaScript語(yǔ)言的替代品Dart語(yǔ)言,就明確規(guī)定只有null,沒(méi)有undefined!
Undefined
Undefined 類(lèi)型只有一個(gè)值,即 undefined。
聲明了變量,但未進(jìn)行初始化時(shí),這個(gè)變量的值就是 undefined,例如:
var message;
alert(message == undefined); // true
字面量 undefined 的主要目的是用于比較,而ECMAScript 3.0之前的版本中并沒(méi)有規(guī)定這個(gè)值。引入這個(gè)值是為了正式區(qū)分空對(duì)象指針 與 未經(jīng)初始化的變量。
Null
Null 類(lèi)型是第二個(gè)只有一個(gè)值的類(lèi)型,即 null。
從邏輯角度來(lái)看,null 表示一個(gè)空對(duì)象指針,因此,當(dāng)使用 typeof 操作符檢測(cè) null 值時(shí),會(huì)返回“object”,如下所示:
var car = null;
alert(typeof car); // "object"
如果定義的變量準(zhǔn)備在將來(lái)用于保存對(duì)象,那么最好將該變量初始化為 null,而不是其他值,這樣一來(lái)只要直接檢查null值就可以知道該變量是否保存了一個(gè)對(duì)象的引用,例如:
if (car != null) {
dosomthing
}
實(shí)際上, undefined值是派生自 null值的,因?yàn)樗麄冊(cè)趫?zhí)行相等性測(cè)試(==)時(shí)要返回 true
alert(null == undefined) // true
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- javascript中undefined與null的區(qū)別
- 一文讓你徹底弄懂js中undefined和null的區(qū)別
- JavaScript中undefined和null的區(qū)別
- javascript中undefined與null的區(qū)別
- JavaScript中Null與Undefined的區(qū)別解析
- JavaScript中的null和undefined區(qū)別介紹
- 詳解JavaScript中undefined與null的區(qū)別
- js中 關(guān)于undefined和null的區(qū)別介紹
- JS基礎(chǔ)之undefined與null的區(qū)別分析
- JS中null和undefined的區(qū)別
相關(guān)文章
js+css實(shí)現(xiàn)回到頂部按鈕(back to top)
這篇文章主要為大家詳細(xì)介紹了js+css實(shí)現(xiàn)回到頂部按鈕back to top回到頂部按鈕,感興趣的小伙伴們可以參考一下2016-03-03window.location.hash 使用說(shuō)明
location是javascript里面管理地址欄的內(nèi)置對(duì)象.2010-11-11javascript ES6中箭頭函數(shù)注意細(xì)節(jié)小結(jié)
這篇文章主要給大家總結(jié)了關(guān)于javascript ES6中箭頭函數(shù)注意細(xì)節(jié)的相關(guān)資料,文中介紹的比較詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-02-02javascript 網(wǎng)頁(yè)跳轉(zhuǎn)的方法
昨天練習(xí)的時(shí)候正好要用到跳轉(zhuǎn)代碼,在網(wǎng)上找了一下,覺(jué)得下面幾個(gè)不錯(cuò)...整理了一下發(fā)上來(lái)...2008-12-12JavaScript之a(chǎn)ppendChild、insertBefore和insertAfter使用說(shuō)明
這幾天需要用到對(duì)HTML節(jié)點(diǎn)元素的刪/插操作,由于用到insertBefore方法的時(shí)候遇到了一些麻煩,現(xiàn)在作為知識(shí)的整理,分別對(duì)appendChild、insertBefore和insertAfter做個(gè)總結(jié)2010-12-12js獲取dom的高度和寬度(可見(jiàn)區(qū)域及部分等等)
網(wǎng)頁(yè)可見(jiàn)區(qū)域?qū)捇蚋?、網(wǎng)頁(yè)正文全文寬或高以及網(wǎng)頁(yè)正文部分左或右,詳細(xì)請(qǐng)看下文,希望對(duì)大家有所幫助2013-06-06JS實(shí)現(xiàn)div內(nèi)部的文字或圖片自動(dòng)循環(huán)滾動(dòng)代碼
在某些情況下需要這樣的功能:使用JS實(shí)現(xiàn)div內(nèi)部的文字或圖片自動(dòng)循環(huán)滾動(dòng),接下來(lái)為大家詳細(xì)介紹下實(shí)現(xiàn)方法,感興趣的朋友可以參考下哈2013-04-04JavaScript對(duì)JSON數(shù)據(jù)進(jìn)行排序和搜索
今天教給大家如何使用數(shù)組的方法來(lái)實(shí)現(xiàn)JSON數(shù)據(jù)進(jìn)行排序和搜索功能,具體實(shí)例代碼大家參考下本文吧2017-07-07