国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ES6中Null判斷運(yùn)算符(??)正確打開(kāi)方式-

這篇具有很好參考價(jià)值的文章主要介紹了ES6中Null判斷運(yùn)算符(??)正確打開(kāi)方式-。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

讀取對(duì)象屬性的時(shí)候,如果某個(gè)屬性的值是null或者undefined,有時(shí)候需要為它們指定默認(rèn)值。常見(jiàn)的作法是通過(guò)||運(yùn)算符指定默認(rèn)值。

const headerText = response.settings.headerText || 'Hello, world!';
const animationDuration = response.settings.animationDuration || 300;
const showSplashScreen = response.settings.showSplashScreen || true;

上面的三行代碼都是通過(guò)||運(yùn)算符指定默認(rèn)值,但是這樣寫(xiě)是錯(cuò)的。我們這樣寫(xiě)的意愿一般是,只要屬性的值為null或者undefined,默認(rèn)值就會(huì)生效。但是屬性的值如果是空字符串或者false或者0,默認(rèn)值也會(huì)生效

為了避免這種情況,ES2020引入了一個(gè)新的Null判斷運(yùn)算符??。它的行為類(lèi)似于||,但是只有運(yùn)算符左側(cè)的值為null或者undefined時(shí),才會(huì)返回右側(cè)的值。

const headerText = response.settings.headerText ?? 'Hello, world!';
const animationDuration = response.settings.animationDuration ?? 300;
const showSplashScreen = response.settings.showSplashScreen ?? true;

上面代碼中,默認(rèn)值只有左側(cè)屬性值為null或者undefined時(shí),才會(huì)生效

這個(gè)運(yùn)算符的一個(gè)目的,就是跟鏈判斷符?.配合使用,為null或者undefined的值設(shè)置默認(rèn)值

const value = respons.setting?.value ?? 300

上面的代碼中,如果response.setting時(shí)null或者undefined,或者response.setting.value是null或者undefined,就會(huì)返回默認(rèn)值300。也就是說(shuō),這一行代碼包括了兩級(jí)屬性的判斷

這個(gè)運(yùn)算符很適合判斷函數(shù)參數(shù)使得否賦值

function Component(props){
    const enabled = props.enabled ?? true
    // ...
}

上面的代碼判斷props參數(shù)enabled屬性是否賦值,基本等同于下面的寫(xiě)法

function Component(props){
    const { enabled:enable=true} = props
    // ....
}

?? 本質(zhì)上是邏輯運(yùn)算,它與其他兩個(gè)邏輯運(yùn)算符&&和||有一個(gè)優(yōu)先級(jí)問(wèn)題,它們之間的優(yōu)先級(jí)到底誰(shuí)高誰(shuí)低。優(yōu)先級(jí)的不同,往往會(huì)導(dǎo)致邏輯運(yùn)算結(jié)果不同。

現(xiàn)在的規(guī)則是,如果多個(gè)運(yùn)算符一起使用,必須用括號(hào)表明優(yōu)先級(jí),否則會(huì)報(bào)錯(cuò)

// 報(bào)錯(cuò)
lhs && middle ?? rhs
lhs ?? middle && rhs
lhs || middle ?? rhs
lhs ?? middle || rhs

上面四個(gè)表達(dá)式都會(huì)報(bào)錯(cuò),必須加入標(biāo)明優(yōu)先級(jí)的括號(hào)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-636936.html

(lhs && middle) ?? rhs;
lhs && (middle ?? rhs);

(lhs ?? middle) && rhs;
lhs ?? (middle && rhs);

(lhs || middle) ?? rhs;
lhs || (middle ?? rhs);

(lhs ?? middle) || rhs;
lhs ?? (middle || rhs);

到了這里,關(guān)于ES6中Null判斷運(yùn)算符(??)正確打開(kāi)方式-的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • es6的語(yǔ)法糖,展開(kāi)運(yùn)算符,類(lèi)的實(shí)現(xiàn)

    es6的語(yǔ)法糖,展開(kāi)運(yùn)算符,類(lèi)的實(shí)現(xiàn)

    ? ? ? 對(duì)象存在鍵值對(duì),如果需要解構(gòu)對(duì)象,你需要使用對(duì)象的鍵名為變量名 ? ? 字符串的展開(kāi) ? 數(shù)組的展開(kāi) ? 對(duì)象的展開(kāi) 對(duì)象 的簡(jiǎn)明寫(xiě)法1: 對(duì)象 的簡(jiǎn)明寫(xiě)法2: 具有相同特征的一類(lèi)事物的抽象 1、使用class 2、類(lèi)的動(dòng)態(tài)屬性定義在構(gòu)造器中(constructor),如果沒(méi)有定義

    2024年02月02日
    瀏覽(28)
  • vue對(duì)象復(fù)制(使用es6對(duì)象擴(kuò)展運(yùn)算符,深拷貝)
  • ES6 全詳解 let 、 const 、解構(gòu)賦值、剩余運(yùn)算符、函數(shù)默認(rèn)參數(shù)、擴(kuò)展運(yùn)算符、箭頭函數(shù)、新增方法,promise、Set、class等等

    ? ECMAScript 6.0,簡(jiǎn)稱(chēng) ES6,是 JavaScript 語(yǔ)言的下一代標(biāo)準(zhǔn),已經(jīng)在 2015 年 6 月正式發(fā)布了。它的目標(biāo),是使得 JavaScript 語(yǔ)言可以用來(lái)編寫(xiě)復(fù)雜的大型應(yīng)用程序,成為企業(yè)級(jí)開(kāi)發(fā)語(yǔ)言 要講清楚這個(gè)問(wèn)題,需要回顧歷史。1996 年 11 月,JavaScript 的創(chuàng)造者 Netscape 公司,決定將 JavaSc

    2024年04月15日
    瀏覽(30)
  • 如何使用SQL系列 之 如何在SQL中使用比較運(yùn)算符和IS NULL運(yùn)算符

    在某些 結(jié)構(gòu)化查詢(xún)語(yǔ)言 (SQL)語(yǔ)句中, WHERE 子句可以用來(lái)限制給定操作會(huì)影響哪些行。他們通過(guò)定義特定的條件來(lái)做到這一點(diǎn),這些條件被稱(chēng)為 搜索條件 ,每一行必須滿(mǎn)足才會(huì)受到影響。搜索條件由一個(gè)或多個(gè) 謂詞 組成,它們是特殊的表達(dá)式,計(jì)算結(jié)果為“true”、“false”

    2024年02月10日
    瀏覽(38)
  • js多目運(yùn)算符的判斷寫(xiě)法

    1、兩目運(yùn)算 2、三目運(yùn)算

    2024年02月08日
    瀏覽(21)
  • shell腳本中的運(yùn)算符和條件判斷

    shell腳本中的運(yùn)算符和條件判斷

    在Shell腳本中,你可以使用各種運(yùn)算符來(lái)執(zhí)行數(shù)學(xué)運(yùn)算、比較和邏輯操作。 計(jì)算方式: $[ ] $(( )) 例: a= $[(9+5) 90] 打印輸出結(jié)果 == echo $a test $a = 90 [ $a = 90 ] 注意事項(xiàng): 判斷處理中間空格隔開(kāi) 關(guān)系運(yùn)算符: -eq 等于 -lt 小于 -gt 大于 -ne 不等于 -le 小于等于 -ge 大于等于 文件類(lèi)型

    2024年04月17日
    瀏覽(20)
  • 從零開(kāi)始探索C語(yǔ)言(三)----運(yùn)算符和判斷語(yǔ)句

    從零開(kāi)始探索C語(yǔ)言(三)----運(yùn)算符和判斷語(yǔ)句

    運(yùn)算符是一種告訴編譯器執(zhí)行特定的數(shù)學(xué)或邏輯操作的符號(hào)。 C 語(yǔ)言?xún)?nèi)置了豐富的運(yùn)算符,并提供了以下類(lèi)型的運(yùn)算符: 算術(shù)運(yùn)算符 關(guān)系運(yùn)算符 邏輯運(yùn)算符 位運(yùn)算符 賦值運(yùn)算符 雜項(xiàng)運(yùn)算符 實(shí)例 當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果: 以下實(shí)例演示了 a++ 與

    2024年02月10日
    瀏覽(19)
  • 【Python入門(mén)】Python的判斷語(yǔ)句(布爾類(lèi)型和比較運(yùn)算符)

    【Python入門(mén)】Python的判斷語(yǔ)句(布爾類(lèi)型和比較運(yùn)算符)

    前言 ??作者簡(jiǎn)介: 熱愛(ài)跑步的恒川 ,致力于C/C++、Java、Python等多編程語(yǔ)言,熱愛(ài)跑步,喜愛(ài)音樂(lè)的一位博主。 ??本文收錄于Python零基礎(chǔ)入門(mén)系列,本專(zhuān)欄主要內(nèi)容為Python基礎(chǔ)語(yǔ)法、判斷、循環(huán)語(yǔ)句、函數(shù)、函數(shù)進(jìn)階、數(shù)據(jù)容器、文件操作、異常模塊與包、數(shù)據(jù)可視化等,

    2024年02月03日
    瀏覽(23)
  • Linux【實(shí)操篇】—— Shell 編程入門(mén)、變量、運(yùn)算符、條件判斷、流程控制

    Linux【實(shí)操篇】—— Shell 編程入門(mén)、變量、運(yùn)算符、條件判斷、流程控制

    目錄 一、Shell 編程入門(mén) 1. 認(rèn)識(shí) Shell 2. Shell 腳本的創(chuàng)建與執(zhí)行???????? 二、Shell 變量 1. 系統(tǒng)變量和自定義變量 2. 變量的基本規(guī)則 3. 設(shè)置環(huán)境變量 4. 位置參數(shù)變量 5. 預(yù)定義變量 三、運(yùn)算符 四、條件判斷 五、流程控制 1. if 語(yǔ)句 2. case 語(yǔ)句 3. for 循環(huán) 4. while 循環(huán) 六、rea

    2024年02月03日
    瀏覽(27)
  • 【m_listCtrl !=NULL有多個(gè)運(yùn)算符與操作數(shù)匹配】2023/9/21 上午11:03:44

    2023/9/21 上午11:03:44 m_listCtrl !=NULL有多個(gè)運(yùn)算符與操作數(shù)匹配 2023/9/21 上午11:04:00 如果您在編譯或運(yùn)行代碼時(shí)遇到\\\"M_listCtrl != NULL有多個(gè)運(yùn)算符與操作數(shù)匹配\\\"的錯(cuò)誤提示,這通常是由于以下幾個(gè)原因之一: 錯(cuò)誤使用運(yùn)算符:在條件判斷語(yǔ)句中,應(yīng)該使用雙等號(hào)(==)進(jìn)行相等性比

    2024年02月07日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包