JavaScript undefined及null區(qū)別實例解析
在JavaScript中,將一個變量賦值為undefined或null,老實說,幾乎沒區(qū)別。
var a = undefined;
var a = null;
上面代碼中,a變量分別被賦值為undefined和null,這兩種寫法幾乎等價。
undefined和null在if語句中,都會被自動轉(zhuǎn)為false,相等運算符甚至直接報告兩者相等。
if (!undefined)
console.log('undefined is false');
// undefined is falseif (!null)
console.log('null is false');
// null is falseundefined == null
// true
上面代碼說明,兩者的行為是何等相似!
既然undefined和null的含義與用法都差不多,為什么要同時設(shè)置兩個這樣的值,這不是無端增加JavaScript的復(fù)雜度,令初學(xué)者困擾嗎?Google公司開發(fā)的JavaScript語言的替代品Dart語言,就明確規(guī)定只有null,沒有undefined!
Undefined
Undefined 類型只有一個值,即 undefined。
聲明了變量,但未進行初始化時,這個變量的值就是 undefined,例如:
var message;
alert(message == undefined); // true
字面量 undefined 的主要目的是用于比較,而ECMAScript 3.0之前的版本中并沒有規(guī)定這個值。引入這個值是為了正式區(qū)分空對象指針 與 未經(jīng)初始化的變量。
Null
Null 類型是第二個只有一個值的類型,即 null。
從邏輯角度來看,null 表示一個空對象指針,因此,當(dāng)使用 typeof 操作符檢測 null 值時,會返回“object”,如下所示:
var car = null;
alert(typeof car); // "object"
如果定義的變量準(zhǔn)備在將來用于保存對象,那么最好將該變量初始化為 null,而不是其他值,這樣一來只要直接檢查null值就可以知道該變量是否保存了一個對象的引用,例如:
if (car != null) {
dosomthing
}
實際上, undefined值是派生自 null值的,因為他們在執(zhí)行相等性測試(==)時要返回 true
alert(null == undefined) // true
以上就是本文的全部內(nèi)容,希望對大家的學(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)文章
NestJS使用class-validator進行數(shù)據(jù)驗證
本文將通過詳細的步驟和實戰(zhàn)技巧,帶大家掌握如何在NestJS中使用class-validator進行數(shù)據(jù)驗證,以及11條實戰(zhàn)中常用的驗證技巧,感興趣的可以了解下2024-11-11
javascript使用定時函數(shù)實現(xiàn)跳轉(zhuǎn)到某個頁面
定時跳轉(zhuǎn)到某個頁面,比如跳轉(zhuǎn)到一個頁面處理完任務(wù),然后又回到原來的頁面,這個用javascript的定時函數(shù)很容易實現(xiàn)2013-12-12
JavaScript超詳細實現(xiàn)網(wǎng)頁輪播圖
這篇文章主要介紹了JavaScript超詳細實現(xiàn)網(wǎng)頁輪播圖,我們經(jīng)常會看到各種輪播圖的效果,它們到底是怎樣實現(xiàn)的呢?今天我們就一起來看一下具體實現(xiàn)方法吧2021-12-12
Input文本框隨著輸入內(nèi)容多少自動延伸的實現(xiàn)
下面小編就為大家?guī)硪黄狪nput文本框隨著輸入內(nèi)容多少自動延伸的實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02
使用electron實現(xiàn)百度網(wǎng)盤懸浮窗口功能的示例代碼
這篇文章主要介紹了使用electron實現(xiàn)百度網(wǎng)盤懸浮窗口功能的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10
基于JavaScript實現(xiàn)生成名片、鏈接等二維碼
本文使用javascript技術(shù)實現(xiàn)生成名片、鏈接等二維碼的代碼,代碼簡單易懂并附有注釋,需要的朋友可以參考下本文2015-09-09

