技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運(yùn)營(yíng)

贊助商

分類(lèi)目錄

贊助商

最新文章

搜索

比較JavaScript中的null和undefined[示例]

作者:admin    時(shí)間:2022-6-2 0:47:52    瀏覽:

nullundefined 是JavaScript中常見(jiàn)的兩個(gè)值,在使用過(guò)程中,有時(shí)比較容易混淆,不知用哪個(gè)好。在本文中,將通過(guò)示例詳細(xì)介紹 nullundefined ,通過(guò)比較,了解它們之間的差別。

比較JavaScript中的null和undefined

關(guān)于 null 和 undefined 的含義

null:它是一個(gè)賦值值,這意味著它作為一個(gè)值專(zhuān)門(mén)分配給一個(gè)變量,表示該變量的空狀態(tài)。

undefined:它不是賦值值,這意味著它沒(méi)有專(zhuān)門(mén)分配給變量。

實(shí)例比較 null 和 undefined

undefined

JavaScript 在特定實(shí)例上返回 undefined。例如,當(dāng)聲明一個(gè)變量但未分配任何值時(shí),返回 undefined。參考下面給出的代碼:

let myVar;
console.log(myVar); //返回 undefined
console.log(typeof myVar); //返回undefined

在上面的示例中,可以看到“myVar”已聲明但未分配任何值;因此,當(dāng)我們 console.log 'myVar' 時(shí),返回 undefined,當(dāng)我們使用 typeOf 運(yùn)算符檢查 myVar 的類(lèi)型時(shí),再次返回 undefined。

null

nullundefined 不同。null 是一個(gè)賦值值,專(zhuān)門(mén)分配給一個(gè)變量,作為表示該變量的空狀態(tài)的值。

let myVar = null;
console.log(myVar); //返回 null
console.log(typeof myVar); //返回 object

在上面的例子中,可以看出我們?cè)?console.log 'myVar' 變量時(shí)得到了 null。但是當(dāng)我們使用 JavaScript 中的 typeof 運(yùn)算符檢查“myVar”變量的類(lèi)型時(shí),我們會(huì)得到 Object。

null和undefined的不同之處

因此,很明顯 nullundefined 屬于不同的類(lèi)型。null是對(duì)象類(lèi)型,而 undefined 是未定義類(lèi)型。讓我們檢查 null 是否等于 undefined。

console.log(null == undefined); // true
console.log(null === undefined); // false

當(dāng)我們檢查 if (null == undefined)時(shí),我們?cè)诳刂婆_(tái)中得到了 true,但是當(dāng)我們檢查 if (null === undefined) 時(shí),我們得到了 false,因?yàn)?null 等于 undefined 但并不嚴(yán)格。正如我們已經(jīng)看到 nullundefined 屬于不同的類(lèi)型,當(dāng)使用嚴(yán)格相等運(yùn)算符(===)比較它們時(shí),我們會(huì)得到 false。我們可從下面文章中詳細(xì)了解相等運(yùn)算符和嚴(yán)格相等運(yùn)算符之間的區(qū)別:

JavaScript中undeclared, undefined和null有什么區(qū)別?

undeclared

如果未使用適當(dāng)?shù)年P(guān)鍵字(即var,letconst)聲明變量,則該變量未聲明。以下文章介紹了聲明變量的關(guān)鍵字區(qū)別:

訪問(wèn)一個(gè)未聲明的變量會(huì)拋出一個(gè)ReferenceError。

console.log(x); // ReferenceError: x is not defined

undefined

一個(gè)變量是undefined如果它沒(méi)有被分配一個(gè)值。undefined是 JavaScript 中的原始數(shù)據(jù)類(lèi)型,表示有意或無(wú)意的值的缺失。

let x;
console.log(x); // undefined

null

一個(gè)變量被賦予一個(gè)null的值,與任何其他值一樣。null也是 JavaScript 中的原始數(shù)據(jù)類(lèi)型,并且始終表示有意缺少值。

let x = null;
console.log(x); // null

JS 面試題:一個(gè)變量是null、undefined 還是 undeclared 有什么區(qū)別?

在 Javascript 中,undefinednull與變量包含的值有些相關(guān),undeclared 的情況有所不同。

 undefinednull 都屬于數(shù)據(jù)類(lèi)型類(lèi)別。

undefined 是一個(gè)已經(jīng)聲明但沒(méi)有值的變量,并且它本身是“undefined ”的類(lèi)型。

null 是一個(gè)變量值,它是一個(gè)對(duì)象類(lèi)型。

我們使用 console.log();type of 檢查變量是否 undefined  或 null。

undeclared 的變量是一個(gè)沒(méi)有“var”關(guān)鍵字聲明的變量。

testVar = ‘hello world’;

而不是

var testVar = ‘hello world’;

當(dāng)前面的代碼被執(zhí)行時(shí),undeclared 的變量被創(chuàng)建為全局變量并且它們是可配置的(例如可以刪除),參考文章:

總結(jié)

本文詳細(xì)比較介紹了JavaScript中的nullundefined,還有undeclared,通過(guò)本文的學(xué)習(xí),我們應(yīng)該了解到nullundefined的使用區(qū)別。

相關(guān)文章

標(biāo)簽: null  undefined  
x
  • 站長(zhǎng)推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */