精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

JavaScript中幾個(gè)優(yōu)雅的運(yùn)算符

開發(fā) 前端
新版本的 ECMAScript 引入了三個(gè)新的邏輯賦值運(yùn)算符:空運(yùn)算符,AND 和 OR 運(yùn)算符,這些運(yùn)算符的出現(xiàn),也是希望讓我們的代碼更干凈簡(jiǎn)潔,下面分享幾個(gè)優(yōu)雅的 JavaScript 運(yùn)算符使用技巧。

ECMAScript 發(fā)展進(jìn)程中,會(huì)有很多功能的更新,比如銷毀,箭頭功能,模塊,它們極大的改變 JavaScript 編寫方式,可能有些人喜歡,有些人不喜歡,但像每個(gè)新功能一樣,我們最終會(huì)習(xí)慣它們。

新版本的 ECMAScript 引入了三個(gè)新的邏輯賦值運(yùn)算符:空運(yùn)算符,AND 和 OR 運(yùn)算符,這些運(yùn)算符的出現(xiàn),也是希望讓我們的代碼更干凈簡(jiǎn)潔,下面分享幾個(gè)優(yōu)雅的 JavaScript 運(yùn)算符使用技巧。

[[397737]]

一、可選鏈接運(yùn)算符【?.】

(1) 可選鏈接運(yùn)算符(Optional Chaining Operator) 處于 ES2020 提案的第 4 階段,因此應(yīng)將其添加到規(guī)范中。它改變了訪問對(duì)象內(nèi)部屬性的方式,尤其是深層嵌套的屬性。它也可以作為 TypeScript 3.7 + 中的功能使用。

相信大部分開發(fā)前端的的小伙伴們都會(huì)遇到 null 和未定義的屬性。JS 語言的動(dòng)態(tài)特性使其無法不碰到它們。特別是在處理嵌套對(duì)象時(shí),以下代碼很常見:

  1. if (data && data.children && data.children[0] && data.children[0].title) { 
  2.     // I have a title! 

上面的代碼用于 API 響應(yīng),我必須解析 JSON 以確保名稱存在。但是,當(dāng)對(duì)象具有可選屬性或某些配置對(duì)象具有某些值的動(dòng)態(tài)映射時(shí),可能會(huì)遇到類似情況,需要檢查很多邊界條件。

這時(shí)候,如果我們使用可選鏈接運(yùn)算符,一切就變得更加輕松了。它為我們檢查嵌套屬性,而不必顯式搜索梯形圖。我們所要做的就是使用 “?” 要檢查空值的屬性之后的運(yùn)算符。我們可以隨意在表達(dá)式中多次使用該運(yùn)算符,并且如果未定義任何項(xiàng),它將盡早返回。

(2) 對(duì)于靜態(tài)屬性用法是:

  1. object?.property 

(3) 對(duì)于動(dòng)態(tài)屬性將其更改為:

  1. object?.[expression]  

上面的代碼可以簡(jiǎn)化為:

  1. let title = data?.children?.[0]?.title; 

然后,如果我們有:

  1. let data; 
  2. console.log(data?.children?.[0]?.title) // undefined 
  3.  
  4. data  = {children: [{title:'codercao'}]} 
  5. console.log(data?.children?.[0]?.title) // codercao 

這樣寫是不是更加簡(jiǎn)單了呢?由于操作符一旦為空值就會(huì)終止,因此也可以使用它來有條件地調(diào)用方法或應(yīng)用條件邏輯

  1. const conditionalProperty = null
  2. let index = 0
  3.  
  4. console.log(conditionalProperty?.[index++]); // undefined 
  5. console.log(index);  // 0 

(4) 對(duì)于方法的調(diào)用你可以這樣寫

  1. object.runsOnlyIfMethodExists?.() 

例如下面的parent對(duì)象,如果我們直接調(diào)用parent.getTitle(), 則會(huì)報(bào)Uncaught TypeError: parent.getTitle is not a function錯(cuò)誤,parent.getTitle?.()則會(huì)終止不會(huì)執(zhí)行

  1. let parent = { 
  2.     name: "parent", 
  3.     friends: ["p1", "p2", "p3"], 
  4.     getName: function() { 
  5.       console.log(this.name) 
  6.     } 
  7.   }; 
  8.    
  9.   parent.getName?.()   // parent 
  10.   parent.getTitle?.()  //不會(huì)執(zhí)行 

(5) 與無效合并一起使用

提供了一種方法來處理未定義或?yàn)榭罩岛捅磉_(dá)提供默認(rèn)值。我們可以使用??運(yùn)算符,為表達(dá)式提供默認(rèn)值

  1. console.log(undefined ?? 'codercao'); // codercao 

因此,如果屬性不存在,則可以將無效的合并運(yùn)算符與可選鏈接運(yùn)算符結(jié)合使用以提供默認(rèn)值。

  1. let title = data?.children?.[0]?.title ?? 'codercao'; 
  2. console.log(title); // codercao 

二、邏輯空分配(?? =)

  1. expr1 ??= expr2 

邏輯空值運(yùn)算符僅在 nullish 值(null 或者 undefined)時(shí)才將值分配給 expr1,表達(dá)方式:

  1. x ??= y 

可能看起來等效于:

  1. xx = x ?? y; 

但事實(shí)并非如此!有細(xì)微的差別。

空的合并運(yùn)算符(??)從左到右操作,如果 x 不為 nullish 值則中表達(dá)式不執(zhí)行。因此,如果 x 不為null 或者 undefined,則永遠(yuǎn)不會(huì)對(duì)表達(dá)式y(tǒng)進(jìn)行求值。如果y是一個(gè)函數(shù),它將根本不會(huì)被調(diào)用。因此,此邏輯賦值運(yùn)算符等效于

  1. x ?? (x = y); 

三、邏輯或分配(|| =)

此邏輯賦值運(yùn)算符僅在左側(cè)表達(dá)式為 falsy 值(虛值) 時(shí)才賦值。Falsy 值(虛值)與 null 有所不同,因?yàn)?falsy 值(虛值)可以是任何一種值:undefined,null,空字符串 (雙引號(hào) ""、單引號(hào)’’、反引號(hào) ``),NaN,0。IE 瀏覽器中的 document.all,也算是一個(gè)。

語法:

  1. x ||= y 

等同于

  1. x || (x = y

在我們想要保留現(xiàn)有值(如果不存在)的情況下,這很有用,否則我們想為其分配默認(rèn)值。例如,如果搜索請(qǐng)求中沒有數(shù)據(jù),我們希望將元素的內(nèi)部 HTML 設(shè)置為默認(rèn)值。否則,我們要顯示現(xiàn)有列表。這樣,我們避免了不必要的更新和任何副作用,例如解析,重新渲染,失去焦點(diǎn)等。我們可以簡(jiǎn)單地使用此運(yùn)算符來使用 JavaScript 更新 HTML:

  1. document.getElementById('search').innerHTML ||= '<i>No posts found matching this search.</i>

四、邏輯與分配(&& =)

可能你已經(jīng)猜到了,此邏輯賦值運(yùn)算符僅在左側(cè)為真時(shí)才賦值。因此:

  1. x &&= y 

等同于

  1. x && (x = y

最后

本次分享幾個(gè)優(yōu)雅的 JavaScript 運(yùn)算符使用技巧,重點(diǎn)分享了可選鏈接運(yùn)算符的使用,這樣可以讓我們不需要再編寫大量我們例子中代碼即可輕松訪問嵌套屬性。但是 IE 不支持它,因此,如果需要支持該版本或更舊版本的瀏覽器,則可能需要添加 Babel 插件。對(duì)于 Node.js,需要為此升級(jí)到 Node 14 LTS 版本,因?yàn)? 12.x 不支持該版本。

責(zé)任編輯:趙寧寧 來源: 前端工匠
相關(guān)推薦

2022-09-07 00:04:37

JavaScript運(yùn)算符技巧

2021-07-12 15:35:56

JavaScript代碼運(yùn)算符

2021-02-20 23:34:22

JavaScript運(yùn)算符開發(fā)

2017-05-11 16:38:07

javascript邏輯運(yùn)算符

2020-03-27 22:33:30

JavaScript運(yùn)算符逗號(hào)

2020-06-04 08:13:36

JavaScriptObject.is()運(yùn)算符

2025-02-24 11:16:20

2024-06-11 14:57:00

2025-03-05 09:37:03

2009-08-11 15:51:08

C#運(yùn)算符算術(shù)運(yùn)算符

2022-02-21 07:04:44

C#表達(dá)式運(yùn)算符

2023-04-10 08:58:13

C#關(guān)系運(yùn)算符

2021-03-13 17:48:07

JavaScriptObject.is()運(yùn)算符

2009-08-12 15:02:49

C#賦值運(yùn)算符簡(jiǎn)單賦值運(yùn)算符

2020-10-15 08:11:56

JavaScript邏輯運(yùn)算符

2009-08-12 15:20:18

C#賦值運(yùn)算符復(fù)合賦值運(yùn)算符

2010-10-08 09:17:07

JavaScript表JavaScript運(yùn)

2014-08-14 10:12:45

SwiftNil Coalesc

2023-09-07 23:30:47

運(yùn)算符C++

2009-11-26 11:12:07

PHP運(yùn)算符
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产精品美女诱惑| 精品www久久久久奶水| 国产精品传媒入口麻豆| 9191在线观看| 日韩一区二区电影在线观看| 综合激情成人伊人| 午夜激情在线| 九九热99视频| 亚洲美女动态图120秒| 91精品1区| 国产一级精品毛片| 96久久精品| 懂色一区二区三区免费观看| 国产在线一二三| 精品少妇在线视频| 欧美日韩精品一区二区三区蜜桃| 日本午夜精品| 久久人人爽人人爽人人| 国产精品综合久久久| 99久久精品免费看| 国产三级伦理在线| 国产成人av片| 久久九九精品99国产精品| 性一交一乱一区二区洋洋av| 99国产在线播放| 精品乱子伦一区二区三区| 亚洲国产人成综合网站| 岛国av一区| 免费观看a级片| 国产精品久久久久秋霞鲁丝| 欧美国产精品一区| 亚洲青青一区| 亚洲精品国产精品国自| 国产在线高清精品| 91女厕偷拍女厕偷拍高清| 中国av在线播放| 国产又黄又猛的视频| 中文字幕欧美专区| 欧美亚洲三区| 第一福利在线| 亚洲视频在线观看一区二区三区| 中文字幕欧美国内| 国产成人综合视频| 先锋成人av| 中文字幕精品久久久| 91成人精品网站| 中文字幕一区在线观看视频| 两个人看的在线视频www| 中文字幕免费高清| 成人两性免费视频| 婷婷六月综合亚洲| 欧美电影《轻佻寡妇》| 亚洲第一成年人网站| 国产极品在线视频| 久久精品99久久久香蕉| 日韩二区在线观看| 91国产免费视频| 黄色免费福利视频| 久久久极品av| 国产亚洲欧洲997久久综合 | 日韩亚洲成人av在线| 精东粉嫩av免费一区二区三区| 男人天堂久久久| 免费看毛片的网站| 国产一区香蕉久久| 精品久久久久久久久中文字幕| 68国产成人综合久久精品| 亚州精品国产精品乱码不99按摩| 手机看片国产精品| 亚洲japanese制服美女| 欧美美女直播网站| 青娱乐精品视频在线| 456亚洲精品成人影院| 欧美在线观看不卡| 国产美女三级视频| 久久久久日韩精品久久久男男 | 欧美激情精品在线| 亚洲欧美一区二区三区久本道91 | 亚洲精品美腿丝袜| 欧美电影一区| 国产一二区在线| 99久久99久久精品免费| 5566中文字幕一区二区电影| 国产成人午夜性a一级毛片| 免费av中文字幕| 无码精品国产一区二区三区免费| 欧美国产日韩一区二区| 亚洲国产日韩一级| 99视频+国产日韩欧美| 性欧美ⅴideo另类hd| 国产又粗又猛又爽又黄的视频四季 | 精品999在线观看| 精品福利视频一区二区三区| 91网址在线看| 欧美国产一级| 欧美男人天堂| 一级黄色片在线观看| 中文字幕一区二区三区四| 成人激情直播| 亚洲欧美成人网| 中文字幕的久久| 精品电影一区| 久久不卡日韩美女| 草草视频在线播放| 国产黄色三级网站| 午夜啪啪免费视频| 久久久成人的性感天堂| 欧美性受极品xxxx喷水| 国产精品白丝jk白祙喷水网站| 精品自拍视频| 日本一卡二卡四卡精品| 2017亚洲天堂| 一区二区三区韩国| 久久五月天婷婷| 欧美激情xxxxx| 欧美亚洲国产bt| 久久久不卡网国产精品二区| 亚洲女同在线| 欧美一级三级| 2020国产在线| 国产日韩免费视频| 国产精品三级在线观看无码| 亚洲一区在线免费| 午夜精品视频在线| 欧美一区二区三区视频| 久久美女高清视频| 亚洲伦理影院| 亚洲天天综合网| 性欧美成人播放77777| 天堂…中文在线最新版在线| 国产精品区一区二区三含羞草| 欧美日韩福利电影| 精品福利一二区| 黑人狂躁日本妞一区二区三区 | 在线观看日韩一区| 国产精品久久三| 秋霞午夜鲁丝一区二区老狼| 国产精品久久久久久久免费观看 | 亚洲福利精品视频| 欧美一区二区视频17c| 国产成人黄色av| 美日韩丰满少妇在线观看| 精品乱人伦小说| 精品国产电影一区| 婷婷综合久久| а√天堂资源官网在线资源| 丰满人妻妇伦又伦精品国产 | 内衣办公室在线| 无码人妻精品一区二区| 99久久久无码国产精品性 | 亚洲精品人人| 香蕉人人精品| 亚洲欧洲二区| 成人在线爆射| 番号集在线观看| 熟妇人妻av无码一区二区三区| 无码人妻丰满熟妇精品区| 91成人福利视频| 国产美女免费网站| 扒开伸进免费视频| 视频区 图片区 小说区| 少妇人妻互换不带套| 国产69精品久久久久999小说| 国产高清在线不卡| 欧美精品videosex牲欧美| 久久99久久99精品中文字幕 | 岛国视频一区免费观看| 国产盗摄xxxx视频xxx69| 69久久夜色精品国产7777| 欧美日韩国产成人高清视频| 国产一区二区三区免费视频| 亚洲欧美国产高清va在线播| 日韩成人av一区| 亚洲精品一区二三区不卡| 亚洲精品美女视频| 日韩成人在线免费观看| 日韩精品综合一本久道在线视频| 欧美性极品少妇| 欧美精品日韩一本| 在线免费观看成人短视频| 日本高清免费不卡视频| 在线日韩国产精品| 欧美日韩国产123区| 精品久久久视频| 欧美欧美欧美欧美| 精品国产一区a| 欧美精品一区二区三区在线| 日韩欧美国产一区二区三区| 精品三级av在线| 亚洲免费视频网站| 精品女同一区二区| 中文字幕九色91在线| 欧美成人精品一区二区三区| 午夜精品福利视频| 91精品国产777在线观看| 国产z一区二区三区| 国产精品毛片a∨一区二区三区|国| 国产极品精品在线观看| 高清一区二区三区视频| 婷婷五月色综合| 黄色片视频在线免费观看| 久久国产这里只有精品| 中文字幕亚洲日本| 疯狂试爱三2浴室激情视频| 国产一级在线播放| 一级片一区二区三区| 久草福利在线视频| 99thz桃花论族在线播放| av日韩久久| 国产精品99久久久久久动医院| 另类av一区二区| 不卡的看片网站| 亚洲一区二区在线观看视频 | 国产日韩欧美91| 亚洲精品视频一二三| 手机在线视频你懂的| 欧美亚洲日本在线观看| 欧美人与性囗牲恔配| 日韩欧美成人一区二区三区| 无码精品人妻一区二区三区影院| 亚洲www色| 日日夜夜综合| 欧美国产高潮xxxx1819| 久久99精品国产91久久来源| 国产精品毛片久久久久久| 欧美性高清videossexo| 久久久久www| 999日本视频| 伊人av成人| 岛国精品一区二区三区| 精品熟妇无码av免费久久| 五月天婷婷久久| 精品无人乱码| 美女视频在线免费| 亚洲丁香日韩| 久久电影网电视剧免费观看| www日韩大片| 欧美精品日韩一区| 91精品国产沙发| 久久国产精品久久精品国产| 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 在线观看一区视频| 国产午夜精品一区二区三区四区 | 中文字幕一区二区三区人妻在线视频 | 一级片一区二区三区| 成人日韩欧美| 伊人成综合网yiren22| 伊人精品视频| 亚洲美女屁股眼交3| 亚洲人成免费电影| 999精品在线观看| 911av视频| 欧美成人一区二区视频| 波多野结衣久久| 66国产精品| 国产精品理伦片| 亚洲三级av在线| 日本成人三级| 日本一区二区免费视频| 国产夫妻自拍av| 4438五月综合| 日本亚洲欧美天堂免费| 一区二区三区四区蜜桃| 久久久精品一区二区三区| 亚洲精品在线免费| 欧美一区二区三区成人精品| 亚洲成人精品女人久久久| 超碰97久久| 日本中文一区二区三区| 91福利小视频| 国产成人激情视频| 亚洲老女人av| 探花国产精品一区二区| 色老太综合网| 男女男精品视频网| 884aa四虎影成人精品一区| 亚洲xxxx3d| 久久久久国产精品无码免费看| 亚洲 欧美 精品| 色综合www| 国产精品色一区二区三区| 日韩中文第一页| www.成年人视频| 人人爽人人爽人人片av| 欧美天堂一区二区| 国产精品一卡二| 精品人在线二区三区| 欧美日韩一区二区视频在线 | 91吃瓜在线观看| 一本综合久久| 色播五月激情综合网| 国产在线精品一区免费香蕉| 国产精品成人免费一区久久羞羞| 美州a亚洲一视本频v色道| 不卡一区综合视频| 五月天亚洲精品| 亚洲a一级视频| 青青草自拍偷拍| 人狥杂交一区欧美二区| 韩国视频一区二区| 在线播放日韩欧美| 大桥未久一区二区| 久久久久久无码精品大片| 国产精品久久久久77777丨| 成人avav影音| 久久久久国色av免费观看性色| 欧美 国产 小说 另类| 国产人妻精品一区二区三区| 国产成人福利av| 一个色综合av| 亚洲影院污污.| 青青青视频在线免费观看| 欧美free嫩15| 成人视屏免费看| www.亚洲免费视频| 91专区在线观看| 亚洲精品中文字幕成人片| 欧美日本不卡| 在线看国产一区二区| 韩国一区二区三区美女美女秀| 99精品全国免费观看| 韩日毛片在线观看| av在线播放一区二区三区| 九九热精品视频| 一级做a免费视频| 亚洲91av| 91视频在线看| 久久99久国产精品黄毛片入口| 成人在线播放视频| 国产精品无码久久久久| 中文字幕日本乱码精品影院| 国产精品美女免费视频| 一级国产黄色片| 电影在线观看一区| 日韩成人一级大片| 日韩精品福利在线| 激情五月俺来也| 国精产品一区一区三区mba下载| 成人福利在线看| 国产精品高潮呻吟久久av无限| 少妇高潮一区二区三区喷水| 白嫩亚洲一区二区三区| 亚洲免费观看在线视频| 久久视频在线观看中文字幕| 国产 日韩 欧美 成人| 手机亚洲手机国产手机日韩| 精品99一区二区三区| 香蕉视频网站入口| 欧美日韩在线视频免费观看| 国产在线视频一区二区| 91产国在线观看动作片喷水| 青青青视频在线播放| 成午夜精品一区二区三区软件| 欧美日韩成人综合在线一区二区| 免费极品av一视觉盛宴| 国产乱理伦片a级在线观看| 国产精品白丝av| 成人美女免费网站视频| 亚洲影院在线播放| 亚洲日本视频| 欧美激情亚洲另类| 成人片黄网站色大片免费毛片| 久久久久观看| 欧美一区二区三区四区视频 | 成人公开免费视频| 亚洲精品激情| 91av在线播放视频| 国产成人av免费在线观看| 少妇久久久久| 亚洲欧美综合另类中字| 日本aaa视频| 日韩精品成人| 精品国产露脸精彩对白 | 久久经典综合| 国产精品美女视频网站| 成人免费毛片视频| 视频一区二区欧美| …久久精品99久久香蕉国产| 精品人妻无码一区二区性色| 欧美日韩 国产精品| 欧美极品美女电影一区| 麻豆成人在线视频| 一本久久综合| 最新不卡av在线| 中文字幕第50页| 成人免费视屏| 午夜亚洲福利老司机| 免费黄色日本网站| 亚洲成人不卡| 日韩一区二区三区观看| 久久久久99人妻一区二区三区| 精品成人18| 国产视频精品免费播放| 法国空姐电影在线观看| 久草精品视频| 亚洲精品有码在线| 国产黄在线免费观看| 日韩av一区二区在线影视| 91久久久在线| aaa在线观看|