全國(guó)咨詢(xún)/投訴熱線(xiàn):400-618-4000

首頁(yè)技術(shù)文章正文

undefined和null區(qū)別以及作用有哪些?

更新時(shí)間:2021-12-17 來(lái)源:傳智教育 瀏覽量:

null與undefind的區(qū)別

1.數(shù)據(jù)類(lèi)型不同

JavaScript(ECMAScript標(biāo)準(zhǔn))里共有5種基本類(lèi)型:Undefined, Null, Boolean, Number,String和一種復(fù)雜類(lèi)型Object??梢钥吹絥ull和undefined分屬不同的類(lèi)型,未初始化定義的值用typeof檢測(cè)出來(lái)是"undefined"(字符串),而null值用typeof檢測(cè)出來(lái)是"object"(字符串)。


2.代表意義不同

undefined:undefined是一個(gè)特殊值,表示變量已聲明但未初始化時(shí)的值。

null:null是一個(gè)對(duì)象,一個(gè)準(zhǔn)備用來(lái)保存對(duì)象,還沒(méi)有真正保存對(duì)象的值。從邏輯角度看,null值表示一個(gè)空對(duì)象指針,即表示一個(gè)對(duì)象被定義了,但是值為“空值”。


3.轉(zhuǎn)為數(shù)字結(jié)果不同

null是一個(gè)表示“無(wú)”的對(duì)象,轉(zhuǎn)為數(shù)值時(shí)為O;

undefined是一個(gè)表示“無(wú)”的原始值,轉(zhuǎn)為數(shù)值為NaN。


4.undefind和null使用場(chǎng)景不同

undefined表示“缺少值”,即此處應(yīng)該有一個(gè)值,但是還沒(méi)有定義,典型用法是如下。

(1)如果變量聲明了,但沒(méi)有賦值,它就等于undefined 。

(2)當(dāng)調(diào)用函數(shù)時(shí),如果沒(méi)有提供應(yīng)該提供的參數(shù),該參數(shù)就等于undefined 。

(3)如果對(duì)象沒(méi)有賦值,該屬性的值為undefined。

(4)當(dāng)函數(shù)沒(méi)有返回值時(shí),默認(rèn)返回undefined。

null表示“ 沒(méi)有對(duì)象”,即此處不應(yīng)該有值,典型用法是如下。

(1)作為函數(shù)的參數(shù),表示該函數(shù)的參數(shù)不是對(duì)象。

(2)作為對(duì)象原型鏈的終點(diǎn)。

黑馬前端培訓(xùn)高手班



猜你喜歡:

JavaScript數(shù)組索引用法和檢索方法

JavaScript數(shù)組排序如何實(shí)現(xiàn)?

Javascript事件類(lèi)型以及常用方法有哪些?

黑馬程序員web前端開(kāi)發(fā)高手班課程

分享到:
在線(xiàn)咨詢(xún) 我要報(bào)名
和我們?cè)诰€(xiàn)交談!