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

JavaScript重構技巧 — 條件

開發 前端
JavaScript 是一種易于學習的編程語言,編寫運行并執行某些操作的程序很容易。然而,要編寫一段干凈的JavaScript 代碼是很困難的。

 JavaScript 是一種易于學習的編程語言,編寫運行并執行某些操作的程序很容易。然而,要編寫一段干凈的JavaScript 代碼是很困難的。

[[329554]]

在本文中,我們將介紹一些優化條件表達式相關的重構思路。

分解條件表達式

我們可以將長的條件表達式分解成有命名的短小條件表達多,這樣有利于閱讀。例如我們可能會寫這樣的代碼:

  1. let ieIEMac = navigator.userAgent.toLowerCase().includes("mac") && navigator.userAgent.toLowerCase().includes("ie"

上面的代碼太過冗長了,不利于閱讀,我們可以把它分解成幾個短小且有名字的條件表達式,如下所示:

  1. let userAgent = navigator.userAgent.toLowerCase(); 
  2. let isMac = userAgent.includes("mac"); 
  3. let isIE = userAgent.toLowerCase().includes("ie"); 
  4. let isMacIE = isMac && isIE; 

合并條件表達式

與上面相反的,如果有多個簡短的條件表達式,則可以將它們合并成一個。例如我們可能會寫這樣的代碼:

  1. const x = 5; 
  2. const bigEnough = x > 5; 
  3. const smallEnough = x < 6; 
  4. const inRange = bigEnough && smallEnough; 

我們可以這樣合并:

  1. const x = 5; 
  2. const inRange = x > 5 && x < 6; 

因為表達式很短,即使把它們組合在一起也不會使表達式變長,所以我們可以這樣做。

合并重復的條件片段

如果我們在條件塊中有重復的表達式或語句,則可以將它們移出。例如我們可能會寫這樣的代碼:

  1. if (price > 100) { 
  2.   //... 
  3.   complete(); 
  4. else { 
  5.   //... 
  6.   complete(); 

我們可以把重復的內容移到條件表達式外面,如下所示:

  1. if (price > 100) { 
  2.   //... 
  3. else { 
  4.   //... 
  5. complete(); 

這樣,我們不必重復不必要地調用complete函數。

刪除控制標志

如果我們在循環中使用了控制標志,那應該會這樣代碼:

  1. let done = false
  2. while (!done) { 
  3.   if (condition) { 
  4.     done = true
  5.   } 
  6.   //... 

在上面的代碼中,done 是控制標,在condition為true時,將done設置為true停止while循環。

相對于上面,我們可以使用break來停止循環,如下所示:

  1. let done = false
  2. while (!done) { 
  3.   if (condition) { 
  4.     break; 
  5.   } 
  6.   //... 

用衛語句代替嵌套條件

衛語句就是把復雜的條件表達式拆分成多個條件表達式,比如一個很復雜的表達式,嵌套了好幾層的if-then-else語句,轉換為多個if語句,實現它的邏輯,這多條的if語句就是衛語句。

嵌套條件語句很難閱讀,所以我們可以使用「衛語句」代替它們。例如我們可能會寫這樣的代碼:

  1. const fn = () => { 
  2.   if (foo) { 
  3.     if (bar) { 
  4.       if (baz) { 
  5.         //... 
  6.       } 
  7.     } 
  8.   } 

我們可以這樣優化:

  1. if (!foo) { 
  2.     return
  3.   } 
  4.   if (!bar) { 
  5.     return
  6.   } 
  7.   if (baz) { 
  8.     //... 
  9.   } 

在上面的代碼中,衛語句是:

  1. if (!foo) { 
  2.   return

  1. if (!bar) { 
  2.   return

如果這些條件為假,它們會提前返回函數,這樣,我們就不需要嵌套了。

用多態替換條件

我們可以使用switch語句為不同種類的數據創建相同的子類,而不是使用switch語句對不同類型的數據執行相同的操作,然后針對對象的類型使用不同的方法。

例如我們可能會寫這樣的代碼:

  1. class Animal { 
  2.   constructor(type) { 
  3.     this.type = type; 
  4.   } 
  5.   getBaseSpeed() { 
  6.     return 100; 
  7.   } 
  8.   getSpeed() { 
  9.     switch (this.type) { 
  10.       case ('cat'): { 
  11.         return getBaseSpeed() * 1.5 
  12.       } 
  13.       case ('dog'): { 
  14.         return getBaseSpeed() * 2 
  15.       } 
  16.       default: { 
  17.         return getBaseSpeed() 
  18.       } 
  19.     } 
  20.   } 

我們可以這樣重構:

  1. class Animal { 
  2.   constructor(type) { 
  3.     this.type = type; 
  4.   } 
  5.   getBaseSpeed() { 
  6.     return 100; 
  7.   } 
  8. class Cat extends Animal { 
  9.   getSpeed() { 
  10.     return super.getBaseSpeed() * 1.5; 
  11.   } 
  12. class Dog extends Animal { 
  13.   getSpeed() { 
  14.     return super.getBaseSpeed() * 2; 
  15.   } 

當switch語句很長時,應該為不同類型的對象定制case塊。

采用空對象

如果我們重復檢查null或undefined,則可以定義一個代表該類的null或undefined版本的子類,然后使用它。

例如我們可能會寫這樣的代碼:

  1. class Person { 
  2.   //... 

我們可以這樣重構:

  1. class Person { 
  2.   //... 
  3. class NullPerson extends Person { 
  4.   //... 

然后,我們將Person設置為null或undefined 的對象屬性,而不是將其設置為NullPerson實例。

這樣就無需使用條件檢查這些值。

John Au-Yeung 來源:medium 譯者:前端小智

原文:https://levelup.gitconnected.com/javascript-refactoring-conditionals-6d74a1138c96

本文轉載自微信公眾號「 大遷世界」,可以通過以下二維碼關注。轉載本文請聯系 大遷世界公眾號。

 

責任編輯:武曉燕 來源: 大遷世界
相關推薦

2020-06-08 08:46:59

JavaScript條件類名

2020-06-09 09:13:12

JavaScript重構對象

2022-04-21 07:20:39

Javascript重構邏輯

2020-05-27 09:30:52

JavaScript重構函數

2020-06-01 08:42:11

JavaScript重構函數

2022-07-04 08:51:43

條件語句JavaScript

2019-06-27 10:35:40

JavaScript條件式匹配條件

2011-06-03 13:48:18

JavaScript重構

2025-09-10 08:23:11

代碼重構技巧

2017-03-06 20:39:41

整潔代碼Clean Code

2020-12-17 07:52:38

JavaScript

2025-02-13 12:52:27

JavaScrip代碼開發

2020-09-23 10:09:43

Dockerfile

2021-05-26 08:50:37

JavaScript代碼重構函數

2011-06-09 15:27:01

JavaScript

2024-09-14 11:23:19

2021-08-26 05:04:53

JavaScript調試技巧

2020-09-29 08:14:46

JavaScript開發代碼

2024-09-23 09:00:00

Python條件控制

2010-10-08 09:42:23

JavaScript方
點贊
收藏

51CTO技術棧公眾號

在线视频不卡国产| 免费不卡在线观看av| 午夜肉伦伦影院| 国产福利电影在线| 国产制服丝袜一区| 91精品国产自产91精品| 成人黄色a级片| 久久久久毛片免费观看| 欧美日韩亚洲精品内裤| 亚洲自拍偷拍二区| 日韩一级片免费观看| 久久先锋资源| 色综合老司机第九色激情| 国产成人无码一区二区在线观看| 欧美123区| 亚洲综合在线免费观看| 日韩理论片在线观看| www.亚洲欧美| 免费人成在线不卡| 久久久久久久久久久久av| 性猛交娇小69hd| 99精品在免费线中文字幕网站一区| 在线免费av一区| 婷婷无套内射影院| 男人影院在线观看| 91麻豆国产在线观看| 亚洲a成v人在线观看| 香蕉影院在线观看| 国产一区美女| 久久视频中文字幕| 精品人妻无码一区二区三区换脸| 涩爱av色老久久精品偷偷鲁| 欧美亚洲综合色| 啊啊啊一区二区| 女人天堂av在线播放| 亚洲国产电影在线观看| 亚洲欧洲一区| 欧美xxxxxxxx| 中国黄色片一级| 久久久人成影片一区二区三区在哪下载| 亚洲综合成人在线| 手机成人av在线| av在线电影院| 国产亚洲人成网站| 久久国产欧美精品| 四虎永久在线精品免费网址| 国产精品综合二区| 亚洲自拍另类欧美丝袜| 亚洲无码久久久久| 日韩精品成人一区二区在线| 4438全国成人免费| 日韩精品乱码久久久久久| 欧美a级在线| 欧美成人激情在线| 国产精品白嫩白嫩大学美女| 婷婷久久综合| 精品国产一区久久久| 成人无码精品1区2区3区免费看 | 国产伦精品一区二区三区妓女| 试看120秒一区二区三区| 91精品国产综合久久福利| www.色欧美| 精品久久亚洲| 日韩欧美高清在线| av天堂一区二区| 欧美深夜视频| 亚洲美女激情视频| 国产精品国产三级国产专业不| 国产精品手机在线播放| 在线播放日韩精品| 韩国一级黄色录像| 欧美色综合网| 992tv成人免费视频| 国产成人在线观看网站| 欧美一级一区| 国产精品爽黄69天堂a| 亚洲视频在线免费播放| 国产精品中文有码| 精品一区久久久久久| 激情福利在线| 亚欧日韩另类中文欧美| 日韩av一区二区三区四区| 91po在线观看91精品国产性色| 91精品国产高清一区二区三密臀| 视频一区国产视频| 91精品一区二区| 国产91久久久| 亚洲国产电影在线观看| 亚洲五码在线观看视频| 色在线免费观看| 欧美日韩一区视频| 国产精久久久久| 奇米亚洲欧美| 欧美黄色片在线观看| 免费黄色网址在线| 国产在线一区观看| 国产一区二区三区奇米久涩| 国产黄色免费在线观看| 一区二区三区精品久久久| 国产成人精品视频免费看| 国产成人精品一区二区三区视频| 欧美不卡视频一区| 精品人妻一区二区三区蜜桃视频| 午夜久久福利| 国产精品久久久久久超碰| 国产高清第一页| 久久九九影视网| 欧美人成在线观看| 四虎精品一区二区免费| 精品偷拍一区二区三区在线看 | 亚洲欧洲另类国产综合| 91视频 -- 69xx| 免费观看亚洲天堂| 中文字幕av一区中文字幕天堂| 国产在线拍揄自揄拍| 免费观看久久久4p| 欧美成人一区二区在线| 欧美色图天堂| 777奇米成人网| 国产精品密蕾丝袜| 亚洲综合不卡| 国产精品国产三级国产专区53| 欧美尤物美女在线| 欧美在线一区二区| 欧美bbbbb性bbbbb视频| 樱桃成人精品视频在线播放| 成人精品视频99在线观看免费| 毛片网站在线观看| 岛国视频午夜一区免费在线观看| 精品久久99ma| 国产视频1区2区3区| 亚洲激情播播| 136fldh精品导航福利| av综合在线观看| 国产三级精品三级在线专区| 国产911在线观看| 国产视频网站一区二区三区| 国产亚洲欧洲黄色| 91精品国产综合久久久蜜臀九色| 国产福利一区二区三区视频在线| 久久伊人一区二区| www在线看| 日韩欧美二区三区| 日韩av毛片在线观看| 米奇777在线欧美播放| 成人激情视频网| 好吊日视频在线观看| 欧美日韩在线直播| 一区二区三区四区免费| 一本色道久久精品| 国产色综合一区二区三区| 中文日本在线观看| 欧美日韩亚洲另类| 人妻精品久久久久中文| 午夜亚洲性色视频| 精品一区二区三区自拍图片区| 波多野结衣在线高清| 精品久久人人做人人爽| 午夜激情福利电影| 黄页网站大全一区二区| 一本一道久久a久久综合精品| 午夜av成人| 亚洲人成电影网站色| 青青青国产在线| 91色|porny| 五月婷婷深爱五月| 日韩欧美午夜| 成人国产精品色哟哟| 五月婷婷在线视频| 欧美精品三级在线观看| 免费在线视频观看| 国产999精品久久久久久| 日韩亚洲欧美视频| 欧美黑人巨大videos精品| 久久全国免费视频| 天天干天天做天天操| 精品久久久久久久久中文字幕| 国产精品成人无码专区| 亚洲综合日本| 日韩亚洲不卡在线| 国产精品99精品一区二区三区∴| 久久亚洲精品中文字幕冲田杏梨| 国产亚洲欧美一区| 久久黄色免费网站| 丁香婷婷综合色啪| 阿v天堂2017| 成人在线免费观看91| 成人午夜小视频| xxx性欧美| 亚洲欧美日韩成人| 一区二区视频网| 午夜欧美在线一二页| 中文幕无线码中文字蜜桃| 日本怡春院一区二区| 在线成人性视频| 亚洲一区二区三区在线免费| 国产成人精品a视频一区www| 蜜桃视频网站在线观看| 欧美精品一区二区在线观看| 少妇高潮av久久久久久| 1区2区3区精品视频| 国产精品无码在线| 麻豆91小视频| 超碰成人免费在线| 日韩大片在线| 国产区二精品视| 超碰国产精品一区二页| 91精品国产色综合| 男人影院在线观看| 亚洲女同精品视频| 99久久久久成人国产免费| 在线看国产日韩| 久久久久久久久99| 国产精品欧美久久久久无广告| 精品久久久久一区二区| 精品一区二区三区久久| 黄色免费观看视频网站| 中文字幕一区二区三区欧美日韩| 久久久久久高清| 日韩在线短视频| 18久久久久久| 日日夜夜天天综合入口| 国产亚洲日本欧美韩国| 免费观看的毛片| 欧美色综合网站| 中文字幕一区在线播放| 亚洲自拍另类综合| 91麻豆制片厂| 91网站在线播放| 特级西西人体4444xxxx| 国产在线不卡一卡二卡三卡四卡| 欧美 日韩 国产 激情| 在线成人av| 中文字幕日韩一区二区三区| 日韩成人三级| 欧洲一区二区日韩在线视频观看免费| 白嫩白嫩国产精品| 国产精品影院在线观看| 2022成人影院| av在线这里只有精品| 国产精品毛片va一区二区三区| 欧美一级大片| 日本免费久久高清视频| 黄色污网站在线观看| 欧美国产精品va在线观看| 麻豆系列在线观看| 久久久精品国产亚洲| 尤物在线视频| 在线电影欧美日韩一区二区私密| 香蕉久久一区二区三区| 欧美成人video| 天天综合在线视频| 日韩电影免费观看中文字幕| 不卡的日韩av| 日韩一区二区三区电影在线观看 | 91久久久久久久久久久久久| 日韩中文影院| 国产成人精品在线观看| 成人免费一区| 国产精品美女呻吟| 亚洲一区二区三区四区| 国产91热爆ts人妖在线| 97人人做人人爽香蕉精品| 国产精品对白刺激| 国模私拍国内精品国内av| 国产精品视频成人| 日韩色淫视频| 91精品国产综合久久久久久丝袜| 精品国产乱码久久久久久樱花| 91美女片黄在线观看游戏| 豆花视频一区| 精品久久久久久中文字幕动漫| 91精品导航| 精品视频在线观看| 自拍欧美一区| 亚洲欧洲国产精品久久| 色777狠狠狠综合伊人| 特色特色大片在线| 亚洲高清自拍| 成人性做爰片免费视频| 亚洲国产婷婷| 欧美日韩在线中文| 免费成人在线影院| 手机av在线网| 91网上在线视频| 天天操天天舔天天射| 亚洲天堂av一区| 成年人午夜视频| 欧美人与性动xxxx| 成人黄色免费视频| 亚洲毛片一区二区| 91se在线| 久久久久久久久91| 成人免费直播| 成人精品一区二区三区电影黑人 | 久久精精品视频| 精品国产91| 日韩网站在线免费观看| 日韩精品高清不卡| 丰满少妇中文字幕| 久久只精品国产| 欧美人妻精品一区二区三区| 欧美日韩亚洲一区二| 中文字幕人妻色偷偷久久| 日韩欧美中文字幕一区| yiren22亚洲综合伊人22| 久久精彩免费视频| 欧美激情网站| 91九色单男在线观看| 国产探花在线精品一区二区| 自拍偷拍一区二区三区| 亚洲欧洲日本mm| 99九九99九九九99九他书对| 久久久国产综合精品女国产盗摄| 可以免费看av的网址| 亚洲国产cao| 中文字幕一区二区三区四区免费看| 精品久久久久久久人人人人传媒| 狠狠色伊人亚洲综合网站l| 欧美日本在线视频中文字字幕| 日韩欧美一区二区三区免费观看 | eeuss鲁片一区二区三区| 欧美日本韩国国产| 欧美~级网站不卡| 不卡的在线视频| 国产亚洲综合在线| 国产亚洲欧美精品久久久久久| 欧美无乱码久久久免费午夜一区| 无码国产色欲xxxx视频| 精品国偷自产在线| 日韩精品麻豆| 精品久久久久久一区| 一区二区91| 日批视频在线看| 国产精品久久久久久户外露出| 中文字幕精品无| 日韩福利视频在线观看| 污污的视频在线观看| 成人福利网站在线观看| 99久久视频| 国产一二三区av| 久久只精品国产| 亚洲天堂五月天| 精品国产三级电影在线观看| 黄视频在线观看网站| 国产欧美久久久久久| 欧美黄色录像片| 国产又大又黄又粗又爽| 久久婷婷成人综合色| 老熟妇仑乱一区二区av| 精品无人区太爽高潮在线播放 | 国产精品 欧美在线| 亚洲v天堂v手机在线| 又粗又黑又大的吊av| www.日韩大片| 国产免费一区二区三区四区五区| 亚洲精品视频免费在线观看| 岛国av在线网站| 国产欧美亚洲日本| 亚洲三级毛片| 精品无码在线视频| 亚洲国产精品一区二区www| 免费激情视频网站| 国外视频精品毛片| 希岛爱理av免费一区二区| 又色又爽又高潮免费视频国产| 国产喂奶挤奶一区二区三区| www.亚洲激情| 最好看的2019年中文视频 | 国产精品国产一区二区| 亚洲私人影院| 色欲欲www成人网站| 精品国产乱码久久久久久天美 | 欧美在线观看不卡| 亚洲精品中文字幕av| 成人国产精品| 精品日韩在线播放| 成人午夜激情在线| 伦av综合一区| 久久精品视频99| y111111国产精品久久久| 黄色a级片免费| 国产精品午夜免费| 99热这里只有精品9| 欧美高清在线观看| 国产精品一区二区av交换| 国产三级国产精品国产专区50| 亚洲欧美另类久久久精品2019| 亚州视频一区二区三区| 国产精品高潮呻吟久久av无限| 国产精品久久久久久影院8一贰佰| 久久福利小视频| 在线欧美日韩国产| 国产视频中文字幕在线观看| 99高清视频有精品视频| 视频一区二区中文字幕| www青青草原| 亚洲欧美激情精品一区二区| 亚洲欧美在线人成swag| 国产精品无码免费专区午夜|