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

js有趣的非空判斷函數(shù) + ?? 實(shí)現(xiàn)

 更新時(shí)間:2024年09月10日 09:41:57   作者:代碼里的小貓咪  
本文介紹了JS中空值合并操作符??的用法,包括如何使用它來判斷數(shù)據(jù)是否為“合法數(shù)據(jù)”,即非空字符串、非undefined和非null,下面就一起來了解一下,感興趣的可以了解一下

分享一個(gè)好玩的函數(shù),用于統(tǒng)一判斷一個(gè)數(shù)據(jù)是否為“合法數(shù)據(jù)”,即判斷該數(shù)據(jù)既不是空字符串,也不是 undefined 和 null。

1. 非空判斷

const isLegalData = (data) => {
  if (((data ?? '') !== '')) {
    return true;
  }
  return false;
};

解析一下:data ?? ' '

使用空值合并操作符 ??,它會(huì)檢查 data 的值:

- 如果 data 是 null 或 undefined,則使用空字符串 ' ' 代替,返回 false;

- 如果 data 是 空字符串,返回 false;

- 如果 data 是其他值,則保持 data 的原始值,返回 true。

console.log(isLegalData(undefined)); // false
console.log(isLegalData(null)); // false
console.log(isLegalData('')); // false
console.log(isLegalData('Hello')); // true
console.log(isLegalData(0)); // true
console.log(isLegalData(false)); // true

說到這,那就簡單了解一下 空值合并操作符 --- ?? 吧。

2. 基本介紹

空值合并操作符是 JS 中一個(gè)非常實(shí)用的邏輯運(yùn)算符,用于處理 null 和 undefined 值。它允許我們提供一個(gè)默認(rèn)值,當(dāng)一個(gè)表達(dá)式的結(jié)果是 null 或 undefined 時(shí),就會(huì)返回這個(gè)默認(rèn)值。

const value = someVariable ?? defaultValue;

- someVariable:被檢查的變量或表達(dá)式。

- defaultValue:當(dāng) someVariable 為 null 或 undefined 時(shí),返回的默認(rèn)值。

舉個(gè) ??

const username = null;
const displayName = username ?? 'Monica';
console.log(displayName); // 輸出: Monica

3. ?? 與 || 的區(qū)別

在 JS 中,邏輯或運(yùn)算符 || 也常常用于提供默認(rèn)值,它不會(huì)對(duì) null 和 undefined 做特殊處理,而是對(duì)其他的“假值”(如:0、'' 、false、NaN、null、undefined)進(jìn)行統(tǒng)一處理,視為 false。

const value1 = 0 || 'default';
console.log(value1); // 輸出: default

const value2 = 0 ?? 'default';
console.log(value2); // 輸出: 0

- || :返回第一個(gè)“真值”

- ?? :只對(duì) null 和 undefined 處理

如果我們只想處理 null 和 undefined,而保留其他“假值”,應(yīng)該使用 ??。

4. 注意事項(xiàng)

4.1 優(yōu)先級(jí)

在使用 ?? 時(shí),必須注意運(yùn)算符的優(yōu)先級(jí),特別是在與其他邏輯運(yùn)算符(如 || 和 &&)混合使用時(shí)。

如果期望 || 優(yōu)先執(zhí)行:

const result = (someValue || otherValue) ?? defaultValue;

如果期望 ?? 優(yōu)先執(zhí)行:

const result = someValue || (otherValue ?? defaultValue);

4.2 使用環(huán)境

空值合并操作符是 ECMAScript 2020 (ES11) 中的新特性,因此需要確保在現(xiàn)代瀏覽器或支持 ES2020 的 JavaScript 環(huán)境中使用。

5. 示例

如果在實(shí)際開發(fā)中,某些配置項(xiàng)可以是 0 或者 空字符串,但當(dāng)這些配置項(xiàng)是 null 或 undefined 時(shí),則需要提供一個(gè)默認(rèn)值。

const config = {
  maxRetries: 0,
  timeout: undefined,
  cacheSize: null,
};

// 正確使用空值合并操作符
const retries = config.maxRetries ?? 5; // 輸出: 0(因?yàn)?maxRetries 是有效的值)
const timeout = config.timeout ?? 100; // 輸出: 100(因?yàn)?timeout 是 undefined)
const cache = config.cacheSize ?? 365; // 輸出: 365(因?yàn)?cacheSize 是 null)

在這個(gè)例子中,如果使用 || ,即使 maxRetries 為 0,也會(huì)被替換為 5,不是我們想要的結(jié)果,所有這種情況下,?? 會(huì)更加合適。

空值合并操作符 ?? 對(duì)處理 null 和 undefined 非常有幫助,它與傳統(tǒng)的 || 運(yùn)算符相比,更加精確和安全。

到此這篇關(guān)于js有趣的非空判斷函數(shù) + ?? 實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)js 非空判斷 + ?? 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript 變量、作用域及內(nèi)存

    JavaScript 變量、作用域及內(nèi)存

    這篇文章主要介紹了JavaScript 變量、作用域及內(nèi)存,需要的朋友可以參考下
    2015-04-04
  • 正則表達(dá)式中特殊符號(hào)及正則表達(dá)式的幾種方法總結(jié)(replace,test,search)

    正則表達(dá)式中特殊符號(hào)及正則表達(dá)式的幾種方法總結(jié)(replace,test,search)

    這篇文章主要是對(duì)正則表達(dá)式中特殊符號(hào)及正則表達(dá)式的幾種方法進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助
    2013-11-11
  • 原生js canvas實(shí)現(xiàn)鼠標(biāo)跟隨效果

    原生js canvas實(shí)現(xiàn)鼠標(biāo)跟隨效果

    這篇文章主要為大家詳細(xì)介紹了原生js canvas實(shí)現(xiàn)鼠標(biāo)跟隨效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • layui-table獲得當(dāng)前行的上/下一行數(shù)據(jù)的例子

    layui-table獲得當(dāng)前行的上/下一行數(shù)據(jù)的例子

    今天小編就為大家分享一篇layui-table獲得當(dāng)前行的上/下一行數(shù)據(jù)的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • js實(shí)現(xiàn)DOM走馬燈特效的方法

    js實(shí)現(xiàn)DOM走馬燈特效的方法

    這篇文章主要介紹了js實(shí)現(xiàn)DOM走馬燈特效的方法,以實(shí)例形式較為詳細(xì)的分析了走馬燈效果的實(shí)現(xiàn)原理與具體步驟,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01
  • 微信小程序長按識(shí)別二維碼的幾種情況分析

    微信小程序長按識(shí)別二維碼的幾種情況分析

    最近接到需求,在小程序內(nèi)部長按識(shí)別二維碼添加個(gè)人微信,下面這篇文章主要給大家分析介紹了關(guān)于微信小程序長按識(shí)別二維碼的幾種情況,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • JavaScript中常用的3種彈出提示框(alert、confirm、prompt)

    JavaScript中常用的3種彈出提示框(alert、confirm、prompt)

    這篇文章主要給大家介紹了關(guān)于JavaScript中常用的3種彈出提示框(alert、confirm、prompt)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 詳解微信小程序軌跡回放實(shí)現(xiàn)及遇到的坑

    詳解微信小程序軌跡回放實(shí)現(xiàn)及遇到的坑

    這篇文章主要介紹了詳解微信小程序軌跡回放實(shí)現(xiàn)及遇到的坑,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • JS前端圖片最優(yōu)化壓縮方案

    JS前端圖片最優(yōu)化壓縮方案

    這篇文章主要為大家介紹了JS前端圖片最優(yōu)化壓縮方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • elementui的select實(shí)現(xiàn)多選添加功能

    elementui的select實(shí)現(xiàn)多選添加功能

    這篇文章主要介紹了elementui的select實(shí)現(xiàn)多選添加功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03

最新評(píng)論

三亚市| 宝鸡市| 福建省| 凌海市| 安吉县| 武强县| 潜山县| 江山市| 徐汇区| 宁波市| 赣州市| 高唐县| 太保市| 宜兴市| 宁阳县| 安康市| 雅安市| 保山市| 元谋县| 靖远县| 闻喜县| 外汇| 舞阳县| 亳州市| 海安县| 扶绥县| 桃园市| 绩溪县| 崇州市| 乐至县| 镇沅| 闸北区| 忻城县| 麻江县| 江孜县| 永清县| 荣昌县| 蒙阴县| 宜兰市| 宁陵县| 岐山县|