邏輯空合并運(yùn)算符、可選鏈操作符

記一個(gè)常用操作: ?? 邏輯空合并運(yùn)算符

/* 
      *  邏輯空處理,防止接口將null當(dāng)成字符串處理 @obj
        * 【??】 邏輯空合并操作符,只會(huì)對(duì) null 和 undefined 進(jìn)行判斷,
        *  不對(duì)其他Falsy值(比如 0、false、''、NaN: 非數(shù)值(Not-a-Number))生效
 */
    nullToEmpty(obj) {
        let n = {};
        for (let i in obj) {
            n[i] = obj[i] ?? "";
        }
        return n;
    },

在JavaScript中,F(xiàn)alsy 值是指在條件判斷時(shí)會(huì)被當(dāng)作 false 的值。以下是JavaScript中被視為 Falsy 值的一些情況:

  1. false: 布爾值 false
  2. 0: 數(shù)值 0
  3. '': 空字符串
  4. null
  5. undefined
  6. NaN: 非數(shù)值(Not-a-Number)

當(dāng)條件判斷時(shí),如果一個(gè)值為以上列出的任何一個(gè),它會(huì)被當(dāng)作 false,其他情況則被當(dāng)作 true。這些值被稱(chēng)為 Falsy 值,因?yàn)樗鼈冊(cè)跅l件判斷中的行為類(lèi)似于布爾值 false。

舉個(gè)例子,以下的條件判斷中,如果變量 x 的值是 Falsy 值,條件判斷會(huì)認(rèn)為 xfalse,否則會(huì)認(rèn)為 xtrue

if (x) {
    // 如果 x 是非 Falsy 值
} else {
    // 如果 x 是 Falsy 值
}

可選鏈操作符(?.)

res.result?.total == 0
// 這是一個(gè)可選鏈操作符(?.)的用法。首先,它檢查res.result是否存在(不是null或undefined)。如果res.result存在,那么表達(dá)式會(huì)繼續(xù)執(zhí)行total == 0,檢查res.result對(duì)象的total屬性是否等于0。如果res.result不存在(比如是null或undefined),則整個(gè)可選鏈表達(dá)式的結(jié)果為undefined,并且在條件判斷中會(huì)被視為假。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容