JavaScript中Null和Undefined的區(qū)別

JavaScript中Null和Undefined的區(qū)別

Null:

null是js中的關(guān)鍵字,表示空值,null可以看作是object的一個(gè)特殊的值,如果一個(gè)object值為空,表示這個(gè)對(duì)象不是有效對(duì)象。

Undefined:

undefined不是js中的關(guān)鍵字,其是一個(gè)全局變量,是Global的一個(gè)屬性,以下情況會(huì)返回undefined:

1)使用了一個(gè)未定義的變量;var i;

2)使用了已定義但未聲明的變量;

3)使用了一個(gè)對(duì)象屬性,但該屬性不存在或者未賦值;

4)調(diào)用函數(shù)時(shí),該提供的參數(shù)沒有提供:

function func(a){

???console.log(a);??????

}

func();//undefined

?5)函數(shù)沒有返回值時(shí),默認(rèn)返回undefined

var?aa=func();

aa;//undefined

相同點(diǎn):

都是原始類型的值,保存在棧中變量本地

兩者的區(qū)別:

1.類型不一樣:

console.log(typeOf undefined);//undefined

console.log(typeOf?null);//object

2.轉(zhuǎn)化為值時(shí)不一樣:undefined為NaN ,null為0

console.log(Number(undefined));//NaN

console.log(Number(10+undefined));//NaN


console.log(Number(null));//0

console.log(Number(10+null));//10

?3.undefined===null;//false

??? undefined==null;//true

何時(shí)使用:

null當(dāng)使用完一個(gè)比較大的對(duì)象時(shí),需要對(duì)其進(jìn)行釋放內(nèi)存時(shí),設(shè)置為null;

var?arr=["aa","bb","cc"];

arr=null;//釋放指向數(shù)組的引用

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容