最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript中undefined、null與NaN的區(qū)別

 更新時間:2023年09月11日 16:01:25   作者:劉瓜皮Alison  
undefined、null和NaN都屬于javascript中的數(shù)據(jù)類型,本文主要介紹了 JavaScript中undefined、null與NaN的區(qū)別,具有一定的參考價值,感興趣的可以了解一下

undefined、null與NaN的區(qū)別

1. 含義

undefined: 表示變量應(yīng)該有值,但未賦值。其類型是undefined。

null: 表示定義了一個空對象 ( 內(nèi)存地址指向為空 )。其類型是object。

NaN: 表示非數(shù)字 ( Not a number )。其類型是number。( Q: 既然表示非數(shù)字,為何其類型卻是number? )

2. typeof、==、===的區(qū)別

/** typeof */
typeof undefined;     // undefined
typeof null;          // object
typeof NaN;           // number
/** == */
undefined == null;   // true
undefined == NaN/** NaN跟NaN都不相等,跟其他值當然更不相等啦 **/;  // false
NaN == null;         // false
/** === */
undefined === null;  // false
undefined === NaN;   // false
NaN === null;        // false

3. JSON.stringify、toString的區(qū)別

const obj = { property1: undefined, property2: null, property3: NaN };
const arr = [ undefined, null, NaN ];
/** JSON */
console.log(JSON.stringify(obj));   // {"[property2":null,"[property3":null,}
console.log(JSON.stringify(arr));   // [null,null,null]
/** toString */
console.log(obj.toString());        // [object Object]
console.log(arr.toString());        // [,,NaN]

JSON.stringify、Array.prototype.toString中的參數(shù)中有undefined、null、NaN時,結(jié)果可能非我們預(yù)期。故使用JSON.stringfy深拷貝對象或使用Array.prototype.toString扁平化數(shù)組時,應(yīng)評估其結(jié)果的影響。

用于處理 null、NaN 和undefined 的 18 個 JavaScript 代碼片段

Null、NaN 和 undefined 是程序員在使用 JavaScript 時遇到的常見值。

有效處理這些值對于確保代碼的穩(wěn)定性和可靠性至關(guān)重要。

因此,在今天這篇文章中,我們將探討 18 個 JavaScript 代碼片段,它們?yōu)樘幚?null、NaN 和未定義場景提供了便捷的解決方案。

這些代碼片段將幫助你通過有效處理這些值來編寫更清晰、更優(yōu)雅的代碼。

1. 檢查是否為null:

要檢查變量是否為 null,可以使用嚴格相等運算符 (===) 將其直接與 null 進行比較:

if (variable === null) {
  // Code to handle null value
}

2. 檢查undefined:

同樣,你可以使用 typeof 運算符檢查變量是否為undefined:

if (typeof variable === 'undefined') {
  // Code to handle undefined value
}

3. 檢查 NaN:

要檢查值是否為 NaN(非數(shù)字),可以使用 isNaN() 函數(shù):

if (isNaN(value)) {
  // Code to handle NaN value
}

4. 如果為 null 或undefined則默認為某個值:

如果變量為 null 或undefined,您可以使用邏輯 OR 運算符 (||) 提供默認值:

const result = variable || defaultValue;

5. 如果為 NaN,則默認為一個值:

如果值為 NaN,您可以使用 isNaN() 函數(shù)以及邏輯 OR 運算符來提供默認值:

const result = isNaN(value) ? defaultValue : value;

6. 將 null 或 undefined 轉(zhuǎn)換為空字符串:

要將 null 或undefined的值轉(zhuǎn)換為空字符串,可以使用邏輯 OR 運算符和空字符串:

const result = variable || '';

7. 將 null 或 undefined 轉(zhuǎn)換為零:

如果需要將 null 或 undefined 轉(zhuǎn)換為零,可以使用邏輯 OR 運算符和數(shù)字零:

const result = variable || 0;

8. 將 null 或 undefined 轉(zhuǎn)換為默認對象:

要將 null 或 undefined 轉(zhuǎn)換為默認對象,可以將邏輯 OR 運算符與空對象文字結(jié)合使用:

const result = variable || {};

9. 檢查變量是否為 null 或undefined:

您可以使用邏輯 OR 運算符組合 null 和未定義檢查:

if (variable === null || typeof variable === 'undefined') {
  // Code to handle null or undefined value
}

10. 檢查值是否為 null、undefined或 NaN:

將 null、未定義和 NaN 檢查與邏輯 OR 運算符結(jié)合起來:

if (variable === null || typeof variable === 'undefined' || isNaN(variable)) {
  // Code to handle null, undefined, or NaN value
}

11. unll或undefined的短路評估:

如果變量為 null 或undefined,請使用邏輯 AND 運算符 (&&) 執(zhí)行短路計算:

const result = variable && someFunction();

12. 使用 NaN 進行短路評估:

如果值為 NaN,則可以使用邏輯 AND 運算符進行短路評估:

const result = !isNaN(value) && someFunction();

13. 可選鏈接:

為了避免在訪問可能為 null 或未定義的對象的屬性時出現(xiàn)錯誤,您可以使用可選鏈接運算符 (?.):

const result = object?.property;

14. 空合并運算符:

空值合并運算符 (??) 提供了一種簡潔的方法來為 null 或未定義的變量提供默認值:

const result = variable ?? defaultValue;

15. 將 null 或 undefined 轉(zhuǎn)換為布爾值:

要將 null 或 undefined 轉(zhuǎn)換為布爾值,可以使用邏輯 NOT 運算符 (!):

const result = !!variable;

16. 將 NaN 轉(zhuǎn)換為布爾值:

要將 NaN 轉(zhuǎn)換為布爾值,可以使用 isNaN() 函數(shù)和邏輯 NOT 運算符:

const result = !isNaN(value);

17. 處理函數(shù)參數(shù)中的 null 或 undefined:

您可以使用默認參數(shù)值來處理函數(shù)參數(shù)中的 null 或undefined:

function myFunction(param = defaultValue) {
  // Code that uses the parameter
}

18. 從數(shù)組中刪除 null 或undefined的值:

要從數(shù)組中刪除 null 或undefined的值,可以使用 filter() 方法:

const newArray = originalArray.filter((value) => value !== null && typeof value !== 'undefined');

結(jié)論:

以上就是我今天與您分享的18 個 JavaScript 代碼片段,希望這些代碼片段對您有用,因為,這些代碼片段可以幫助您有效地處理代碼中的 null、NaN 和undefined的使用場景。

這些代碼片段,無論您需要檢查這些值、提供默認值還是將它們轉(zhuǎn)換為不同的類型,它們都將幫助您編寫更清晰、更優(yōu)雅的 JavaScript 代碼。

到此這篇關(guān)于 JavaScript中undefined、null與NaN的區(qū)別的文章就介紹到這了,更多相關(guān) JavaScript undefined null NaN內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 個人小程序接入支付解決方案

    個人小程序接入支付解決方案

    這篇文章主要介紹了個人小程序接入支付解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • 支持移動端原生js輪播圖

    支持移動端原生js輪播圖

    這篇文章主要介紹了支持移動端原生js輪播圖的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • JavaScript中number轉(zhuǎn)換成string介紹

    JavaScript中number轉(zhuǎn)換成string介紹

    這篇文章主要介紹了JavaScript中number轉(zhuǎn)換成string介紹,本文講解了4個把number轉(zhuǎn)換成string的函數(shù),需要的朋友可以參考下
    2014-12-12
  • 簡述ES6新增關(guān)鍵字let與var的區(qū)別

    簡述ES6新增關(guān)鍵字let與var的區(qū)別

    最近看了很多文章,偶然間看到ES6中新增了一個關(guān)鍵字 let ,它具有與 var 關(guān)鍵字相似的功能。接下來通過本文給大家介紹ES6新增關(guān)鍵字let與var的區(qū)別,需要的朋友可以參考下
    2019-08-08
  • JavaScript的setAttribute兼容性問題解決方法

    JavaScript的setAttribute兼容性問題解決方法

    JavaScript的setAttribute存在兼容性問題,下面與大家分享下具體的解決方法,感興趣的朋友可以參考下
    2013-11-11
  • javascript文本模板用法實例

    javascript文本模板用法實例

    這篇文章主要介紹了javascript文本模板用法,實例分析了文本模板的相關(guān)實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • js中將String轉(zhuǎn)換為number以便比較

    js中將String轉(zhuǎn)換為number以便比較

    string沒轉(zhuǎn)換就拿去比較,結(jié)果是很頭疼的,下面為大家介紹下js中String轉(zhuǎn)換為number,需要的朋友可以參考下
    2014-07-07
  • JavaScript創(chuàng)建對象的四種常用模式實例分析

    JavaScript創(chuàng)建對象的四種常用模式實例分析

    這篇文章主要介紹了JavaScript創(chuàng)建對象的四種常用模式,結(jié)合實例形式分析了javascript使用工廠模式、構(gòu)造函數(shù)模式、原型模式及動態(tài)原型模式創(chuàng)建對象的相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2019-01-01
  • fckeditor部署到weblogic出現(xiàn)xml無法讀取及樣式不能顯示問題的解決方法

    fckeditor部署到weblogic出現(xiàn)xml無法讀取及樣式不能顯示問題的解決方法

    這篇文章主要介紹了fckeditor部署到weblogic出現(xiàn)xml無法讀取及樣式不能顯示問題的解決方法,分析了問題出現(xiàn)的原因及相關(guān)配置文件設(shè)置技巧,需要的朋友可以參考下
    2017-03-03
  • 微信小程序?qū)崿F(xiàn)拼圖小游戲

    微信小程序?qū)崿F(xiàn)拼圖小游戲

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)拼圖小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10

最新評論

个旧市| 广汉市| 高唐县| 温宿县| 龙海市| 高青县| 南木林县| 成安县| 清流县| 明水县| 江阴市| 黄龙县| 陈巴尔虎旗| 吐鲁番市| 寻乌县| 藁城市| 洪泽县| 高淳县| 彭州市| 织金县| 三原县| 固安县| 张家川| 介休市| 墨玉县| 合川市| 简阳市| 铜山县| 阳高县| 雷波县| 瑞昌市| 彰化市| 陇川县| 广德县| 蒙自县| 临猗县| 浠水县| 鲁甸县| 宁晋县| 建平县| 民权县|