可選鏈Optional Chaining的用法

在日常開發(fā)中有時(shí)會(huì)碰到這種情況,我們需要判斷一個(gè)較深層次的對(duì)象屬性是否存在。用普通的if方法,需要逐個(gè)判斷中間節(jié)點(diǎn)是否有效,代碼會(huì)比較繁瑣,和顯得很蠢,而Optional Chaining可以幫助我們用一句代碼解決。

可選鏈?zhǔn)?code>Js的新動(dòng)態(tài),有希望被加入到ECMAScript中去。

一種可以在當(dāng)前值可能為null的可選值上請(qǐng)求和調(diào)用屬性、方法及下標(biāo)的方法。
接下來介紹一下它的使用方法,使用前需先安裝配置

1.安裝配置

安裝

yarn add @babel/plugin-proposal-optional-chaining --dev

配置 .babelrc

{
  "plugins": ["@babel/plugin-proposal-optional-chaining"]
}

2.需求場(chǎng)景

在項(xiàng)目中,經(jīng)常會(huì)遇到對(duì)象的屬性鏈訪問,很容易因?yàn)橐粋€(gè)屬性不存在出現(xiàn)Cannot read property 'xxx' of undefined的問題。Optional Chaining就解決了這一問題。

它會(huì)先判斷前面的值, 如果 undefined 或者 null, 就結(jié)束后面的調(diào)用, 直接返回 undefined。

3.使用方法

?. 操作符

a?.b
//相當(dāng)于
a == null ? undefined : a.b
//先判斷前面的值, 如果 undefined 或者 null, 就結(jié)束后面的調(diào)用, 直接返回 undefined

日常使用中再也不用用if一層一層的逐個(gè)判斷中間節(jié)點(diǎn)是否有效,例如想要看a{b{cu0z1t8os}}中d是否存在,只需

a?.b?.c?.d

三種使用場(chǎng)景,靜態(tài)調(diào)用、動(dòng)態(tài)調(diào)用、函數(shù)調(diào)用。

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概要 64學(xué)時(shí) 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,880評(píng)論 0 3
  • 第5章 引用類型(返回首頁(yè)) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,691評(píng)論 0 4
  • 函數(shù)和對(duì)象 1、函數(shù) 1.1 函數(shù)概述 函數(shù)對(duì)于任何一門語(yǔ)言來說都是核心的概念。通過函數(shù)可以封裝任意多條語(yǔ)句,而且...
    道無虛閱讀 4,963評(píng)論 0 5
  • ??面向?qū)ο螅∣bject-Oriented,OO)的語(yǔ)言有一個(gè)標(biāo)志,那就是它們都有類的概念,而通過類可以創(chuàng)建任意...
    霜天曉閱讀 2,264評(píng)論 0 6
  • ??引用類型的值(對(duì)象)是引用類型的一個(gè)實(shí)例。 ??在 ECMAscript 中,引用類型是一種數(shù)據(jù)結(jié)構(gòu),用于將數(shù)...
    霜天曉閱讀 1,227評(píng)論 0 1

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