精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

69精品无码成人久久久久久| 91嫩草国产丨精品入口麻豆| av图片在线观看| 欧美日韩中文一区二区| 91精品国产麻豆| 97在线看福利| 国产不卡的av| 成人黄色动漫| 国产精品色噜噜| 国产精品国色综合久久| 五月婷婷六月婷婷| 欧美日韩日本国产亚洲在线| 亚洲欧美日本精品| 成人免费黄色av| 日韩成人动漫| 亚洲国产精品天堂| 亚洲国产一区二区精品视频| 成人在线免费看视频| 日韩欧美高清在线播放| 精品国产伦一区二区三区观看方式| 亚洲人成无码www久久久| 神马久久久久| 在线欧美视频| 色av吧综合网| 欧美美女一级片| 国产高清视频色在线www| 国产精品久久久久久久久搜平片 | 亚洲欧美日韩在线一区| 日日夜夜精品视频免费观看| 欧洲av一区二区| 亚洲不卡av一区二区三区| 最新国产精品久久| av男人的天堂在线| 久久影院视频免费| 激情视频在线观看一区二区三区| 国产精品伦理一区| 人妖欧美一区二区| 欧美尤物巨大精品爽| 国产大片aaa| 欧美福利影院| 美日韩丰满少妇在线观看| 波多野在线播放| 亚洲精品中文字幕| 亚洲国产成人av网| 国产成人生活片| 国产人成网在线播放va免费| 欧美国产精品久久| 天天综合色天天综合色hd| 欧美一区二区少妇| 久久综合网色—综合色88| 国产精品中出一区二区三区| 亚洲AV无码精品自拍| 国产精品一区二区黑丝| 亚洲一区久久久| 国产在线视频卡一卡二| 欧美精品一线| 欧美精品18videos性欧| 免费三片在线播放| 亚洲经典在线| 91成人福利在线| 久久久久久少妇| 可以免费看不卡的av网站| 欧美在线中文字幕| www.五月婷婷.com| 麻豆精品一区二区三区| 欧美久久久精品| 天天看片中文字幕| 亚洲国产婷婷| 日韩av片电影专区| 欧美另类高清videos的特点| 蜜臀国产一区二区三区在线播放| 国产精品视频免费观看www| 91成人在线免费| 国产成人在线视频免费播放| 日韩美女在线看| 色av性av丰满av| 日本不卡一区二区| 91亚洲午夜在线| 蜜臀av中文字幕| 青椒成人免费视频| 成人美女免费网站视频| 精品人妻一区二区三区麻豆91 | 久久99精品久久久久久秒播放器 | 欧美精品一线| 4388成人网| 在线不卡免费视频| 国产成a人亚洲精品| 老牛影视免费一区二区| 国产丰满果冻videossex| 成人亚洲精品久久久久软件| 国产精品视频白浆免费视频| 国产精选久久久| 成人av先锋影音| 亚洲欧洲日本国产| 国产第一页在线| 亚洲免费视频成人| 亚洲国产成人不卡| 丝袜在线观看| 91传媒视频在线播放| 北条麻妃亚洲一区| 亚洲最好看的视频| 欧美精品在线观看| 中文字幕精品无| 国产aⅴ精品一区二区三区色成熟| 狼狼综合久久久久综合网| 黄色国产网站在线播放| 粉嫩老牛aⅴ一区二区三区| 亚洲视频一二三四| 欧洲vs亚洲vs国产| 欧美成人精品一区| 无码人妻av免费一区二区三区| 国产一区二区三区综合| 热re99久久精品国99热蜜月 | 97视频在线观看亚洲| 亚洲一区二区天堂| 91美女片黄在线观看| 久久久久福利视频| 久久爱.com| 亚洲欧洲在线视频| 日本三级网站在线观看| 狠狠色丁香九九婷婷综合五月| 久久亚洲高清| 136福利第一导航国产在线| 91精品在线麻豆| 一级 黄 色 片一| 国产精品美女久久久久人| 亚洲男女性事视频| 日操夜操天天操| 国产凹凸在线观看一区二区| 最新国产精品久久| 国产成人免费| 中文字幕亚洲欧美一区二区三区| 免费看毛片网站| 9i在线看片成人免费| 男人天堂a在线| 在线一区二区三区视频| 九色91av视频| 国产一区二区三区成人| 中文子幕无线码一区tr| 久久精品午夜福利| 中国av一区| 欧美在线视频一区| 欧美孕妇性xxxⅹ精品hd| 精品高清一区二区三区| 久久人妻精品白浆国产| 欧美亚洲色图校园春色| 91高清视频在线免费观看| 日韩一级片免费在线观看| 亚洲在线中文字幕| 人妻 丝袜美腿 中文字幕| 午夜国产一区| 国产精品一区二区三区精品| av丝袜在线| 亚洲国产精品网站| 男人日女人网站| 久久久久久久久久久黄色| 日本三级福利片| 粉嫩一区二区三区在线观看| 欧美成人精品激情在线观看| 免费av网站在线播放| 五月天激情综合| 粉嫩av蜜桃av蜜臀av| 水野朝阳av一区二区三区| 四虎一区二区| 国产一区高清| 久久精品影视伊人网| 国产男男gay体育生白袜| 亚洲一区在线电影| bl动漫在线观看| 91精品一区二区三区综合| 91精品视频播放| xxxx成人| 一色桃子一区二区| 国产精品九九九九| 亚洲午夜久久久久中文字幕久| 亚洲一区二区三区综合| 日日夜夜精品视频天天综合网| 亚洲无玛一区| 99久久人爽人人添人人澡| 26uuu亚洲国产精品| √新版天堂资源在线资源| 欧美一区二区成人| 男女啊啊啊视频| 国产精品久久久久9999吃药| 97超碰免费在线观看| 欧美亚洲国产精品久久| 91日本视频在线| 1区2区在线| 色婷婷综合成人av| 成人精品在线播放| 亚洲日本中文字幕区| 丰满岳乱妇一区二区| 日韩二区三区四区| 日韩在线视频在线| 精品高清在线| 国产精品久久精品视| 国产成人精品一区二三区在线观看 | 人九九综合九九宗合| 国产在线1区| 亚洲美女又黄又爽在线观看| 国产精品一区二区人人爽| 欧美日韩午夜视频在线观看| 国产黄色小视频网站| 成人免费毛片片v| 国产一级片自拍| 亚洲永久视频| 国产成人在线小视频| 欧美少妇激情| 午夜欧美大片免费观看| 黄色成年人视频在线观看| 亚洲欧美激情视频| 亚洲卡一卡二卡三| 欧美精选一区二区| 久久久精品毛片| 亚欧色一区w666天堂| 黄色a级片在线观看| 国产亚洲欧美日韩在线一区| 国产中文字幕一区二区三区| 香蕉av福利精品导航| 最新日韩免费视频| 91视频国产资源| 成人免费播放视频| 卡一卡二国产精品| 欧美女人性生活视频| 欧美va天堂| 亚洲午夜精品久久| 欧美日韩国产一区二区三区不卡| 国产精品视频入口| 午夜久久av| 91免费高清视频| 麻豆久久久久| 国产精品成人播放| www.成人爱| 69av在线播放| 免费看男女www网站入口在线| 欧美国产亚洲视频| 午夜羞羞小视频在线观看| 久久久精品免费| 91caoporm在线视频| 中文字幕成人在线| 国产高清一区在线观看| 亚洲人成网7777777国产| 婷婷五月综合久久中文字幕| 国产精品久久久一本精品| 李宗瑞91在线正在播放| 久久这里只有精品首页| 男人天堂av电影| 久久精品一区八戒影视| 成人免费无码大片a毛片| 成人av在线播放网站| 捆绑凌虐一区二区三区| 99久久婷婷国产综合精品电影| 日批在线观看视频| 99r国产精品| 国内自拍视频网| 欧美激情日韩| 成人在线视频一区二区三区| 欧美特黄视频| 欧美啪啪免费视频| 老司机免费视频久久 | 99精品视频免费观看视频| 国产女大学生av| 久久亚洲欧洲| 粉色视频免费看| 国产精品主播直播| 国产一级免费片| 久久久三级国产网站| 亚洲色图日韩精品| 亚洲黄一区二区三区| 日本一二三区视频| 一本久道久久综合中文字幕| 亚洲午夜激情视频| 日韩免费一区二区| 亚洲av片一区二区三区| 亚洲网站在线播放| 91黄色在线| 国产一区二区av| 日本在线免费网| 欧美激情手机在线视频| av电影一区| 91在线视频精品| 日本亚洲不卡| 制服诱惑一区| 亚洲第一在线| 激情 小说 亚洲 图片: 伦| 国产美女在线精品| 白丝女仆被免费网站| 亚洲日本成人在线观看| 日韩欧美成人一区二区三区| 欧美美女黄视频| 香蕉视频网站在线| 久久精品国产一区二区电影| 美女的胸无遮挡在线观看| 成人黄色av网| 九九精品久久| 男人天堂av片| 久久精品99国产精品日本| 人妻在线日韩免费视频| 中文字幕一区二区三区四区| 可以免费看的av毛片| 欧美一卡二卡在线| 国产福利小视频在线| 久久久免费av| 亚洲伊人伊成久久人综合网| 美女被啪啪一区二区| 欧美国产激情| 超碰在线97免费| 91一区二区在线| 欧美日韩激情在线观看| 欧美日韩黄视频| 黄上黄在线观看| 性欧美激情精品| 无码国模国产在线观看| 中文字幕久久综合| 日本大胆欧美人术艺术动态| 青青草视频播放| 一区二区三区美女视频| 一卡二卡三卡在线| 亚洲网站视频福利| 欧美理论影院| 久久这里精品国产99丫e6| 国产精品www994| 中文字幕第10页| 亚洲视频中文字幕| 精品乱码一区内射人妻无码 | 高清av免费一区中文字幕| 国产高清久久| 日韩欧美国产片| 国产精品嫩草99a| www.久久视频| 亚洲人av在线影院| 成人av观看| 欧美极品jizzhd欧美| 国产日韩免费| 变态另类丨国产精品| 午夜一区二区三区在线观看| 朝桐光av在线一区二区三区| 欧美成人三级视频网站| 麻豆国产一区| 久久人妻无码一区二区| 国产美女精品一区二区三区| 可以免费看av的网址| 欧美高清你懂得| 超鹏97在线| av在线亚洲男人的天堂| 国产一区欧美| 人体私拍套图hdxxxx| 精品欧美国产一区二区三区| 色综合免费视频| 欧美一区二区影院| 精品国产aⅴ| 中文字幕免费高清在线| 亚洲图片欧美激情| 亚洲国产www| 国内精品免费午夜毛片| 色婷婷av一区二区三区丝袜美腿| 国产亚洲天堂网| 中文字幕乱码日本亚洲一区二区| 中文字幕资源网| 久久久精品国产亚洲| www.豆豆成人网.com| 久久久999视频| 日本一区二区三区免费乱视频| 中文在线a天堂| 蜜月aⅴ免费一区二区三区| 91综合精品国产丝袜长腿久久| 免费看国产曰批40分钟| 国产女同互慰高潮91漫画| 91精品中文字幕| 欧美激情一区二区久久久| 少妇久久久久| 91欧美视频在线| 一区二区三区不卡视频| 十九岁完整版在线观看好看云免费| 国产精品入口尤物| 你懂的网址国产 欧美| 中出视频在线观看| 欧美日本国产视频| www.综合| 在线综合视频网站| 99热这里都是精品| 在线观看国产成人| 久久久久久久久久国产| 国产欧美日韩一区二区三区四区| 第一区免费在线观看| 亚洲成av人**亚洲成av**| 在线毛片网站| 国产一区喷水| 精品一区二区三区在线观看| 全部毛片永久免费看| www.亚洲免费视频| 成人午夜视屏| 二级片在线观看| 91麻豆精品秘密| 国产xxxx孕妇| 国产精品精品视频一区二区三区| 欧美一区二区三区另类| 老牛影视av老牛影视av| 日韩精品影音先锋| 成人免费在线观看视频|