2020-12-18 鏈判斷運(yùn)算符

摘自:阮一峰的ES6余蟹,感覺在項(xiàng)目中用處比較大父晶,記錄一下。

(1)鏈判斷運(yùn)算符

  • 在我們需要獲取多層對象內(nèi)部的某個屬性值時爷怀,比如讀取 message.body.user.firstName
    不安全的寫法:
        const  firstName = message.body.user.firstName

安全的寫法:

        const firstName = (message
                          message.body
                          message.body.user
                          message.body.user.firstName) || 'default';
  • 三元運(yùn)算符?: 也常用于判斷對象是否存在。
        const fooInput = myForm.querySelector('input[name=foo]')
        const fooValue = fooInput ? fooInput.value : undefined
  • 以上的方法可以簡寫為:
        const firstName = message?.body?.user?.firstName || 'default';
        const fooValue = myForm.querySelector('input[name=foo]')?.value
  • 我們還以判斷一個對象是否有這一個函數(shù)匀伏,如果有就執(zhí)行洒忧,沒有就返回undefined
    var  obj = { say(){console.log(1111) }}
    obj.say?.()   //1111
    obj.read?.()  //undefined

    a?.b
    a == null ? undefined : a.b

    a?.[x]
    a == null ? undefined : a[x]

    a?.b()
    a == null ? undefined : a.b()

    a?.()
    a == null ? undefined : a()

    a.b?.()
    a.b == null ? undefined : a.b()

(2)Null 判斷運(yùn)算符

?? 在讀取對象屬性的時候,如果屬性的值為null和undefined的時候够颠,會指定默認(rèn)值熙侍,但是我們通常是使用 || 來指定默認(rèn)值得,但是當(dāng)我們的屬性值為 空字符串履磨、false蛉抓、0的時候,默認(rèn)值也會生效
??為避免這種情況剃诅,ES2020引入一個新的Null判斷運(yùn)算符 ?? 行為類似于 || 但是只有運(yùn)算符左側(cè)的值為null和undefined時巷送,才會返回右側(cè)的值。
????有一個運(yùn)算優(yōu)先級問題矛辕,它與&&和||的優(yōu)先級孰高孰低⌒︴耍現(xiàn)在的規(guī)則是,如果多個邏輯運(yùn)算符一起使用聊品,必須用括號表明優(yōu)先級飞蹂,否則會報錯。

    lhs && middle ?? rhs
    lhs ?? middle && rhs
    lhs || middle ?? rhs
    lhs ?? middle || rhs
    //以上都會報錯
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末翻屈,一起剝皮案震驚了整個濱河市陈哑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌伸眶,老刑警劉巖惊窖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異厘贼,居然都是意外死亡界酒,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進(jìn)店門涂臣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盾计,“玉大人,你說我怎么就攤上這事赁遗。” “怎么了族铆?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵岩四,是天一觀的道長。 經(jīng)常有香客問我哥攘,道長剖煌,這世上最難降的妖魔是什么材鹦? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮耕姊,結(jié)果婚禮上桶唐,老公的妹妹穿的比我還像新娘。我一直安慰自己茉兰,他們只是感情好尤泽,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著规脸,像睡著了一般坯约。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上莫鸭,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天闹丐,我揣著相機(jī)與錄音,去河邊找鬼被因。 笑死卿拴,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的梨与。 我是一名探鬼主播巍棱,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蛋欣!你這毒婦竟也來了航徙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤陷虎,失蹤者是張志新(化名)和其女友劉穎到踏,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尚猿,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡窝稿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了凿掂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伴榔。...
    茶點(diǎn)故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖庄萎,靈堂內(nèi)的尸體忽然破棺而出踪少,到底是詐尸還是另有隱情,我是刑警寧澤糠涛,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布援奢,位于F島的核電站,受9級特大地震影響忍捡,放射性物質(zhì)發(fā)生泄漏集漾。R本人自食惡果不足惜切黔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望具篇。 院中可真熱鬧纬霞,春花似錦、人聲如沸驱显。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秒紧。三九已至绢陌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間熔恢,已是汗流浹背脐湾。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留叙淌,地道東北人秤掌。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像鹰霍,于是被迫代替她去往敵國和親闻鉴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 編程實(shí)務(wù)中茂洒,如果讀取對象內(nèi)部的某個屬性孟岛,往往需要判斷一下該對象是否存在。比如督勺,要讀取message.body.us...
    大咔丶閱讀 364評論 0 0
  • 編程實(shí)務(wù)中智哀,如果讀取對象內(nèi)部的某個屬性次询,往往需要判斷一下該對象是否存在。比如瓷叫,要讀取message.body.us...
    zhao_ran閱讀 1,235評論 0 1
  • 1.指數(shù)運(yùn)算符 ES2016 新增了一個指數(shù)運(yùn)算符(**)屯吊。 這個運(yùn)算符的一個特點(diǎn)是右結(jié)合绅作,而不是常見的左結(jié)合鸭津。多...
    coderfl閱讀 1,272評論 0 0
  • 三,字符串?dāng)U展 3.1 Unicode表示法 ES6 做出了改進(jìn)结执,只要將碼點(diǎn)放入大括號辨嗽,就能正確解讀該字符世落。有了這...
    eastbaby閱讀 1,518評論 0 8
  • 久違的晴天,家長會糟需。 家長大會開好到教室時屉佳,離放學(xué)已經(jīng)沒多少時間了。班主任說已經(jīng)安排了三個家長分享經(jīng)驗(yàn)洲押。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,513評論 16 22