教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

JavaScript中null與undefind的區(qū)別有哪些?

更新時(shí)間:2021年12月17日14時(shí)25分 來(lái)源:傳智教育 瀏覽次數(shù):

null與undefind的區(qū)別

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

JavaScript(ECMAScript標(biāo)準(zhǔn))里共有5種基本類型:Undefined, Null, Boolean, Number,String和一種復(fù)雜類型Object。可以看到null和undefined分屬不同的類型,未初始化定義的值用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)課程



猜你喜歡:

JS編譯原理:Javascript代碼編譯步驟有哪些?

JavaScript數(shù)組類型檢測(cè)的方法

JavaScript數(shù)據(jù)類型轉(zhuǎn)為字符串的方式有哪些?

JavaScript的組成部分包括哪些?

傳智教育前端開(kāi)發(fā)高手班課程

0 分享到:
和我們?cè)诰€交談!