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

4個(gè)強(qiáng)大JavaScript運(yùn)算符

開發(fā) 前端
你有沒有花一個(gè)下午的時(shí)間閱讀 Mozilla 文檔?如果有,你會(huì)發(fā)現(xiàn)網(wǎng)上有很多 JS 資料,這使我們很容易忽略那些更為基礎(chǔ)的 JS 運(yùn)算符。

你有沒有花一個(gè)下午的時(shí)間閱讀 Mozilla 文檔?如果有,你會(huì)發(fā)現(xiàn)網(wǎng)上有很多 JS 資料,這使我們很容易忽略那些更為基礎(chǔ)的 JS 運(yùn)算符。

這些運(yùn)算符不常見但很強(qiáng)大!在語法上看起來很相似,作用卻不一樣,一定要仔細(xì)閱讀。

1. ?? 非空運(yùn)算符

在 JS 中,?? 運(yùn)算符被稱為非空運(yùn)算符。如果第一個(gè)參數(shù)不是 null/undefined(譯者注:這里只有兩個(gè)假值,但是 JS 中假值包含:未定義 undefined、空對(duì)象 null、數(shù)值 0、空數(shù)字 NaN、布爾 false,空字符串'',不要搞混了),將返回第一個(gè)參數(shù),否則返回第二個(gè)參數(shù)。比如,

  1. null ?? 5 // => 5 
  2. 3 ?? 5 // => 3 

給變量設(shè)置默認(rèn)值時(shí),以前常用 ||邏輯或運(yùn)算符,例如,

  1. var prevMoney = 1 
  2. var currMoney = 0 
  3. var noAccount = null 
  4. var futureMoney = -1 
  5. function moneyAmount(money) { 
  6. return money || `賬戶未開通` 
  7. console.log(moneyAmount(prevMoney)) // => 1 
  8. console.log(moneyAmount(currMoney)) // => 賬戶未開通 
  9. console.log(moneyAmount(noAccount)) // => 賬戶未開通 
  10. console.log(moneyAmount(futureMoney)) // => -1 

上面我們創(chuàng)建了函數(shù) moneyAmount,它返回當(dāng)前用戶余額。我們使用 || 運(yùn)算符來識(shí)別沒有帳戶的用戶。然而,當(dāng)用戶沒有帳戶時(shí),這意味著什么?將無賬戶視為空而不是 0 更為準(zhǔn)確,因?yàn)殂y行賬戶可能沒有(或負(fù))貨幣。在上面的例子中,|| 運(yùn)算符將 0 視為一個(gè)虛假值,不應(yīng)該包括用戶有 0 美元的帳戶。讓我們使用?? 非空運(yùn)算符來解決這個(gè)問題:

  1. var currMoney = 0 
  2. var noAccount = null 
  3. function moneyAmount(money) { 
  4.   return money ?? `賬戶未開通` 
  5. moneyAmount(currMoney) // => 0 
  6. moneyAmount(noAccount) // => `賬戶未開通` 

概括地說 ?? 運(yùn)算符允許我們?cè)诤雎藻e(cuò)誤值(如 0 和空字符串)的同時(shí)指定默認(rèn)值。

2. ??= 空賦值運(yùn)算符

??= 也被稱為空賦值運(yùn)算符,與上面的非空運(yùn)算符相關(guān)。看看它們之間的聯(lián)系:

  1. var x = null 
  2. var y = 5 
  3. console.log(x ??= y) // => 5 
  4. console.log(x = (x ?? y)) // => 5 

僅當(dāng)值為 null 或 undefined 時(shí),此賦值運(yùn)算符才會(huì)賦值。上面的例子強(qiáng)調(diào)了這個(gè)運(yùn)算符本質(zhì)上是空賦值的語法糖(譯者注,類似的語法糖:a = a + b 可寫成 a += b )。接下來,讓我們看看這個(gè)運(yùn)算符與默認(rèn)參數(shù)(譯者注,默認(rèn)參數(shù)是 ES6 引入的新語法,僅當(dāng)函數(shù)參數(shù)為 undefined 時(shí),給它設(shè)置一個(gè)默認(rèn)值)的區(qū)別:

  1. function gameSettingsWithNullish(options) { 
  2.   options.gameSpeed ??= 1 
  3.   options.gameDiff ??= 'easy'  
  4.   return options 
  5. function gameSettingsWithDefaultParams(gameSpeed=1gameDiff='easy') { 
  6.   return {gameSpeed, gameDiff} 
  7. gameSettingsWithNullish({gameSpeed: null, gameDiff: null}) // => {gameSpeed: 1, gameDiff: 'easy'} 
  8. gameSettingsWithDefaultParams(undefined, null) // => {gameSpeed: null, gameDiff: null} 

上述函數(shù)處理空值的方式有一個(gè)值得注意的區(qū)別。默認(rèn)參數(shù)將用空參數(shù)(譯者注,這里的空參數(shù),只能是 undefined)覆蓋默認(rèn)值,空賦值運(yùn)算符將不會(huì)。默認(rèn)參數(shù)和空賦值都不會(huì)覆蓋未定義的值。更多:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Logical_nullish_assignment

3. ?. 鏈判斷運(yùn)算符

鏈判斷運(yùn)算符?. 允許開發(fā)人員讀取深度嵌套在對(duì)象鏈中的屬性值,而不必驗(yàn)證每個(gè)引用。當(dāng)引用為空時(shí),表達(dá)式停止計(jì)算并返回 undefined。比如:

  1. var travelPlans = { 
  2.   destination: 'DC', 
  3.   monday: { 
  4.     location: 'National Mall', 
  5.     budget: 200 
  6.   } 
  7. console.log(travelPlans.tuesday?.location) // => undefined 

現(xiàn)在,把我們剛剛學(xué)到的結(jié)合起來,把 tuesday 加入旅行計(jì)劃中!

  1. function addPlansWhenUndefined(plans, location, budget) { 
  2.   if (plans.tuesday?.location == undefined) { 
  3.     var newPlans = { 
  4.       plans, 
  5.       tuesday: { 
  6.         location: location ?? "公園", 
  7.         budget: budget ?? 200 
  8.       }, 
  9.     } 
  10.   } else { 
  11.     newPlans ??= plans; // 只有 newPlans 是 undefined 時(shí),才覆蓋 
  12.     console.log("已安排計(jì)劃") 
  13.   } 
  14.   return newPlans 
  15. // 譯者注,對(duì)象 travelPlans 的初始值,來自上面一個(gè)例子 
  16. var newPlans = addPlansWhenUndefined(travelPlans, "Ford 劇院", null) 
  17. console.log(newPlans) 
  18. // => { plans:  
  19. // { destination: 'DC', 
  20. // monday: { location: '國家購物中心', budget: 200 } }, 
  21. // tuesday: { location: 'Ford 劇院', budget: 200 } } 
  22. newPlans = addPlansWhenUndefined(newPlans, null, null) 
  23. // logs => 已安排計(jì)劃 
  24. // returns => newPlans object 

上面的例子包含了我們到目前為止所學(xué)的所有運(yùn)算符。現(xiàn)在我們已經(jīng)創(chuàng)建了一個(gè)函數(shù),該函數(shù)將計(jì)劃添加到當(dāng)前沒有嵌套屬性的對(duì)象 tuesday.location 中。我們還使用了非空運(yùn)算符來提供默認(rèn)值。此函數(shù)將錯(cuò)誤地接受像“0”這樣的值作為有效參數(shù)。這意味著 budget 可以設(shè)置為零,沒有任何錯(cuò)誤。

4. ?: 三元運(yùn)算符

?: 又叫條件運(yùn)算符,接受三個(gè)運(yùn)算數(shù):條件 ? 條件為真時(shí)要執(zhí)行的表達(dá)式 : 條件為假時(shí)要執(zhí)行的表達(dá)式。實(shí)際效果:

  1. function checkCharge(charge) { 
  2.   return (charge > 0) ? '可用' : '需充值'  
  3. console.log(checkCharge(20)) // => 可用 
  4. console.log(checkCharge(0)) // => 需充值 

如果你寫過 JS,可能見過三元運(yùn)算符。但是,你知道三元運(yùn)算符可以用于變量賦值嗎?

  1. var budget = 0 
  2. var transportion = (budget > 0) ? '火車' : '步行'  
  3. console.log(transportion) // => '步行' 

我們甚至可以用它來實(shí)現(xiàn)空賦值的行為:

  1. var x = 6 
  2. var x = (x !== null || x !== undefined) ? x : 3 
  3. console.log(x) // => 6 

讓我們通過創(chuàng)建一個(gè)函數(shù)來概括這個(gè)運(yùn)算:

  1. function nullishAssignment(x,y) { 
  2.   return (x == null || x == undefined) ? y : x  
  3. nullishAssignment(null, 8) // => 8 
  4. nullishAssignment(4, 8) // => 4 

在結(jié)束之前,讓我們使用三元運(yùn)算符重構(gòu)前面示例中的函數(shù):

  1. function addPlansWhenUndefined(plans, location, budget) { 
  2.  var newPlans = 
  3.    plans.tuesday?.location === undefined 
  4.      ? { 
  5.          plans, 
  6.          tuesday: { 
  7.            location: location ?? "公園",  
  8.            budget: budget ?? 200 
  9.          }, 
  10.        } 
  11.      : console.log("已安排計(jì)劃"); 
  12.  newPlans ??= plans; 
  13.  return newPlans; 

結(jié)論

我們現(xiàn)在已經(jīng)學(xué)習(xí)了這些運(yùn)算符的使用方法,在這里有更多關(guān)于這些運(yùn)算符的知識(shí)。

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators

(譯者注:文中前三個(gè)運(yùn)算符是 ES2020 的新特性,請(qǐng)勿直接用在生產(chǎn)環(huán)境, 可使用 webpack+babel 進(jìn)行轉(zhuǎn)義,解決瀏覽器兼容性問題)

 

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

2021-06-07 09:55:58

JavaScript開發(fā) 技巧

2025-03-28 00:44:00

JavaScript屬性算法

2017-05-11 16:38:07

javascript邏輯運(yùn)算符

2025-02-24 11:16:20

2021-05-07 06:27:29

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

2009-08-11 15:51:08

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

2021-06-07 09:20:56

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

2010-01-22 17:48:46

VB.NET運(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)算符

2021-07-12 15:35:56

JavaScript代碼運(yùn)算符

2023-04-10 08:58:13

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

2010-10-08 09:17:07

JavaScript表JavaScript運(yùn)

2022-09-07 00:04:37

JavaScript運(yùn)算符技巧

2016-10-14 14:04:34

JAVA語法main

2009-08-12 09:30:10

C#??運(yùn)算符

2009-06-21 13:48:05

ShellLinux運(yùn)算符

2021-12-15 10:25:57

C++運(yùn)算符重載

2024-02-26 15:17:20

點(diǎn)贊
收藏

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

在线观看免费看片| 亚洲区成人777777精品| 日韩国产成人在线| 911久久香蕉国产线看观看| 日韩片之四级片| 久久精品国产精品亚洲色婷婷| 91视频在线观看| 成人一区二区三区在线观看 | 天堂va在线| 97se亚洲国产综合在线| 91精品啪aⅴ在线观看国产| www.国产高清| 综合激情网站| 中文字幕久精品免费视频| 亚洲美女在线播放| 欧美成人xxxx| 色诱亚洲精品久久久久久| 欧美日韩dvd| sese在线视频| 91免费版在线看| 成人在线免费网站| 中文字幕一二区| 亚洲男人影院| 久久免费视频网站| 欧美日韩色视频| 菠萝蜜一区二区| 亚洲精品日韩欧美| 日本wwww色| 国产精品1区在线| 91国产视频在线观看| 欧美大片在线播放| 国产第一页在线视频| 日韩毛片在线免费观看| 天堂资源在线亚洲视频| 青青草在线播放| 成人丝袜18视频在线观看| 亚洲伊人第一页| 97人妻精品一区二区三区软件| 水野朝阳av一区二区三区| 97色伦亚洲国产| 国产在线一区视频| 韩国亚洲精品| 欧美激情一区二区三区在线视频观看| 999精品在线视频| 999久久久91| 最近2019年中文视频免费在线观看| 免费黄色在线视频| 国产精品日韩精品中文字幕| 亚洲精品久久久久中文字幕欢迎你| 美女流白浆视频| 伊人久久亚洲| 亚洲成人精品久久| 国产激情视频网站| 日韩超碰人人爽人人做人人添| 亚洲国产精品久久久久秋霞蜜臀 | 欧美激情在线一区二区| 日韩精品久久一区| 国产三级视频在线| 国产欧美精品一区aⅴ影院| 日韩免费毛片| 美女免费久久| 亚洲免费在线电影| 日韩国产成人无码av毛片| 国产网红在线观看| 亚洲大片精品永久免费| 草草久久久无码国产专区| 麻豆国产在线| 韩曰欧美视频免费观看| 不要播放器的av网站| 韩国理伦片久久电影网| 欧美日韩国产高清一区| aaa一级黄色片| 超碰97久久| 国产视频在线观看一区二区| 一色道久久88加勒比一| 久久亚洲影视| 欧美激情乱人伦| 国产69精品久久久久久久久久| 免费日韩av| 国产美女久久精品| 成人av无码一区二区三区| av在线播放成人| 亚洲激情啪啪| 欧美四级在线| 色婷婷综合久久久中文字幕| 波多野结衣国产精品| 高潮久久久久久久久久久久久久| 亚洲美女视频网| 永久免费看片直接| 亚洲毛片网站| 国产人妖伪娘一区91| 亚洲h视频在线观看| 久久久久99精品一区| ijzzijzzij亚洲大全| 国产高清视频色在线www| 欧美日韩一区二区三区四区| 最新国产精品自拍| 日韩黄色大片网站| 韩国三级电影久久久久久| 高潮无码精品色欲av午夜福利| 国产专区综合网| 精品免费视频123区| 三区四区电影在线观看| 婷婷国产在线综合| 一本一道久久a久久综合蜜桃| 国产精品115| 神马国产精品影院av| 日本中文字幕免费观看| 狠狠色丁香九九婷婷综合五月| 国产日本一区二区三区| www免费在线观看| 91黄色免费观看| 五十路六十路七十路熟婆| 亚洲在线久久| 国产精品视频导航| 头脑特工队2在线播放| 亚洲精选一二三| 色戒在线免费观看| 伊人春色精品| 韩国欧美亚洲国产| 亚洲免费视频网| 亚洲天堂免费看| 日本激情视频在线播放| 亚洲亚洲免费| 1769国产精品| 男人天堂一区二区| 一区二区三区免费网站| 日本美女视频一区| 久久日文中文字幕乱码| 国产精品丝袜视频| 黄色片在线播放| 一本色道久久综合精品竹菊| 三级视频网站在线观看| 国内久久精品| 国产经品一区二区| 污污片在线免费视频| 3d动漫精品啪啪1区2区免费 | 欧美先锋资源| 国产精品9999| 第九色区av在线| 在线欧美日韩精品| 免费视频91蜜桃| 久热综合在线亚洲精品| 欧美另类网站| 欧美成人精品三级网站| 在线午夜精品自拍| 中文字幕在线日亚洲9| 欧美韩国日本不卡| 久久黄色片网站| 亚洲91精品| 91精品国产一区二区三区动漫| 欧美猛烈性xbxbxbxb| 欧美一区二区三区小说| 久草网站在线观看| 成人免费福利片| 久久国产精品视频在线观看| 女仆av观看一区| 奇米影视亚洲狠狠色| 国产鲁鲁视频在线观看免费| 欧美午夜精品久久久久久孕妇| 国产又粗又长免费视频| 久久精品国产99国产| 一级全黄肉体裸体全过程| 精品中文视频| 97在线免费视频| 久久久pmvav| 欧美日韩国产影片| 国产精品 欧美激情| 国产91在线观看丝袜| 免费观看美女裸体网站| 精品国产成人| 91久久精品国产| sm在线播放| 一区二区三区久久精品| 国产男男gay体育生网站| 亚洲一二三区视频在线观看| 四虎永久免费影院| 精品一区二区三区在线观看国产| 国产一区二区三区播放| 杨幂一区二区三区免费看视频| 国产精品入口免费视频一| 成人福利在线观看视频| 亚洲国产成人一区| 伊人久久中文字幕| 一区二区三区免费| 能免费看av的网站| 国产一区美女在线| 国产精品国产亚洲精品看不卡| 欧美日韩一二| 国产91色在线|亚洲| 忘忧草在线www成人影院| 精品中文字幕在线2019| 伦理片一区二区三区| 欧美一区二区日韩| 91视频久久久| 亚洲国产毛片aaaaa无费看| 欧美18—19性高清hd4k| 大桥未久av一区二区三区中文| 美女一区二区三区视频| 激情久久五月| 一本色道久久综合亚洲精品婷婷 | 性生活免费观看视频| 精品一区欧美| 51精品国产人成在线观看| 小黄鸭精品aⅴ导航网站入口| 久久天天躁狠狠躁夜夜躁2014| 天堂a√中文在线| 欧美一区二区免费| 这里只有精品免费视频| 亚洲成av人片在线观看无码| 日本视频在线免费| 26uuu另类欧美亚洲曰本| 亚洲精品久久久久久| 欧美aaaaaa午夜精品| 亚洲美免无码中文字幕在线| 欧美国内亚洲| 亚洲综合av一区| 精品大片一区二区| 麻豆91av| 免费成人三级| 国产精品v欧美精品v日韩| 91精品一区| 国产美女被下药99| ww久久综合久中文字幕| 国产成人精品免高潮费视频| 一个人www视频在线免费观看| 久久久视频在线| 国产探花在线观看| 欧美精品在线播放| 免费黄色电影在线观看| 日韩在线免费高清视频| 国产黄在线看| 亚洲视频在线观看免费| 韩日视频在线| 亚洲人成在线一二| 黄色美女网站在线观看| 国产婷婷色综合av蜜臀av| 四虎永久在线精品免费网址| 精品久久久久香蕉网| 精品国自产在线观看| 4438x成人网最大色成网站| 国产熟女一区二区三区四区| 欧美猛男男办公室激情| 一级欧美一级日韩| 欧美福利视频导航| 99er热精品视频| 欧美一区二区精品在线| 超碰在线播放97| 精品91自产拍在线观看一区| 无码国产精品一区二区免费16| 亚洲国产精品久久久久秋霞不卡 | 亚洲人在线视频| 久久久精品毛片| 91久久精品午夜一区二区| 草莓视频18免费观看| 欧美三区在线视频| 91超薄丝袜肉丝一区二区| 9191成人精品久久| 亚洲奶汁xxxx哺乳期| 日韩久久免费电影| 国产一区二区影视| 日韩中文在线观看| 2024短剧网剧在线观看| 国自产精品手机在线观看视频| 嗯~啊~轻一点视频日本在线观看| 97在线视频观看| 色综合一本到久久亚洲91| 国产精品一香蕉国产线看观看| vam成人资源在线观看| 高清国语自产拍免费一区二区三区| 欧美久久香蕉| 日韩av电影免费在线观看| 99精品国产一区二区三区| 国产肉体ⅹxxx137大胆| 国产亚洲福利| 一级黄色特级片| 高清av一区二区| 国产美女免费无遮挡| 最新不卡av在线| 日本少妇bbwbbw精品| 欧美亚洲一区二区三区四区| 亚洲av无码一区二区三区性色| 精品一区二区三区电影| 国产原创在线观看| 91高清视频免费| 91成人app| 欧美日韩一区二区三区在线视频| 999精品一区| 欧美亚洲另类色图| 国模少妇一区二区三区| 熟女人妻在线视频| 最新不卡av在线| 不卡av电影在线| 精品美女一区二区三区| 成人欧美一区| 97国产在线视频| 四虎影视精品永久在线观看| 久久一区二区三区欧美亚洲| 亚洲精品网址| 欧美少妇性生活视频| 国产福利不卡视频| 日韩一级片在线免费观看| 图片区小说区区亚洲影院| 国产精品永久久久久久久久久| 日韩国产精品视频| 美女尤物在线视频| 国产中文字幕91| 狠狠综合久久av一区二区蜜桃| 少妇人妻大乳在线视频| 久久99精品视频| 国产aⅴ激情无码久久久无码| 亚洲成在线观看| 国产不卡精品视频| 免费久久99精品国产| 国产精品制服诱惑| 国产精品久久天天影视| 国产视频一区二区三区在线播放| 成人午夜看片网址| 日本中文在线视频| 欧美日韩国产一级片| 黄色av免费在线观看| 国模极品一区二区三区| 亚洲91网站| 桥本有菜av在线| 久久国产精品99久久人人澡| 欧美18—19性高清hd4k| 一本高清dvd不卡在线观看| 婷婷色在线视频| 久久久日本电影| 国产日韩三级| 日韩国产一级片| 成人黄色国产精品网站大全在线免费观看| 日韩欧美综合视频| 在线不卡的av| 麻豆视频在线观看免费网站| 国产精品欧美一区二区三区奶水| 九九亚洲视频| 苍井空浴缸大战猛男120分钟| 26uuu欧美日本| 无码人妻一区二区三区线| 亚洲男人天堂九九视频| 第84页国产精品| 欧美日韩亚洲综合一区二区三区激情在线| 亚洲一区自拍| 久久av无码精品人妻系列试探| 一本色道a无线码一区v| melody高清在线观看| 国产精品色婷婷视频| 99久久国产综合精品成人影院| 污污的网站免费| 一区二区三区四区蜜桃| 精品人妻无码一区二区| 久久久人成影片一区二区三区| 美女一区2区| 青青青国产在线视频| 91精品网站在线观看| 91免费精品视频| 欧美 日韩 国产 一区| 苍井空张开腿实干12次| 亚洲成va人在线观看| 四虎影视精品成人| 国产精品极品在线| 久久久久久久久久久久久久| xxxxwww一片| 欧美性xxxxx极品| 黄色软件在线观看| 91欧美激情另类亚洲| 精久久久久久| 九色porny自拍视频| 欧美性猛交xxxxxx富婆| 国产人成网在线播放va免费| 成人av资源| 视频一区视频二区在线观看| 色欲狠狠躁天天躁无码中文字幕 | 国产精品无码白浆高潮| 欧美激情乱人伦一区| 免费欧美激情| 亚洲18在线看污www麻豆| 亚洲午夜电影在线| 免费一级毛片在线观看| 欧美欧美黄在线二区| 国产精品色婷婷| 波多野结衣毛片| 久久天天躁夜夜躁狠狠躁2022| 亚洲一区二区电影| 黄色片一级视频| 亚洲欧美激情小说另类| 香蕉视频网站在线| 国产精品一区二区三| 一区视频在线| 少妇的滋味中文字幕bd| 亚洲福利在线看| 欧美美女福利视频| a级黄色一级片| 亚洲人成小说网站色在线| 天堂中文在线8| 亚洲a中文字幕| 日韩制服丝袜av| 97超碰人人干| 久久成人国产精品|