JavaScript中null與undefind的區(qū)別有哪些?
JavaScript中null與undefind的區(qū)別有哪些?
我要提問推薦答案
JavaScript 中 和 是兩個不同的值,它們有以下幾個區(qū)別:null、undefined
1.變量聲明但未賦值時的默認值:在 JavaScript 中,未初始化的變量默認值為 ,而不是 。undefined、null
let x;
console.log(x); // 輸出 undefined
2.數(shù)據(jù)類型:分別是 JavaScript 中的兩種不同的數(shù)據(jù)類型。表示一個空對象指針,通常用于表示一個變量沒有引用任何對象,而 表示一個未定義的值,通常用于表示變量未被賦值。null、undefined、null、undefined
console.log(typeof null); // 輸出 object
console.log(typeof undefined); // 輸出 undefined
3.類型轉(zhuǎn)換: 和 在進行類型轉(zhuǎn)換時有一些差別。當(dāng)將 轉(zhuǎn)換為數(shù)字或字符串時,會返回 0 和 “null”,而將 轉(zhuǎn)換為數(shù)字或字符串時,則會返回 NaN 和 “undefined”。null、undefined、null、undefined
console.log(Number(null)); // 輸出 0
console.log(String(null)); // 輸出 "null"
console.log(Number(undefined)); // 輸出 NaN
console.log(String(undefined)); // 輸出 "undefined"
4.對象屬性的默認值:在 JavaScript 中,訪問不存在的對象屬性會返回 ,而不是 。undefined、null
const obj = {};
console.log(obj.prop); // 輸出 undefined
總的來說, 和 是 JavaScript 中的兩個不同的值,它們的用途和行為略有不同,需要根據(jù)實際情況選擇使用哪個值。
其他答案
-
一、相似性:1、在JavaScript中將某個變量賦值為undefined或null,實際上沒有太大的差別,兩者都是表示某個變量的值為“空”。2、undefined和null在if語句中,都會被自動轉(zhuǎn)為false,相等運算符甚至直接報告兩者相等。二、歷史原因:與javaScript的歷史有關(guān)。1995年時,最初像java一樣,只設(shè)置了null作為表示“無”的值。根據(jù)c語言的傳統(tǒng),null被設(shè)計為可以自動轉(zhuǎn)為0。三、最初設(shè)計:javaScript的最初版本是這樣區(qū)分的:null是一個表示“無”的對象,轉(zhuǎn)為數(shù)值時為0;undefined是一個表示“無”的原始值,轉(zhuǎn)為數(shù)值時為NaN。四、目前的用法:null和undefined基本是同義的,只有一些細微的差別。
-
1、undefined不是關(guān)鍵字,而null是關(guān)鍵字;var undefined=“” //undefinedvar null=“” //會報錯2、undefined和null被轉(zhuǎn)換為布爾值的時候,兩者都為false;3、undefined在和null進行==比較時兩者相等,全等于比較時兩者不等4、使用Number()對undefined和null進行類型轉(zhuǎn)換時前者為NaN,后者為05、undefined本質(zhì)上是window的一個屬性,而null是一個對象;