加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

重构的艺术:五个小妙招助你写出好代码!

发布时间:2019-11-05 16:53:38 所属栏目:建站 来源:读芯术
导读:糟糕的代码可以运作,但迟早会让我们支付价钱。你有没有碰着过这样的题目:几周后,你无法领略本身的代码,于是不得不花上几个小时,乃至几天的时刻来弄清晰到底产生了什么。 办理这个常见题目的要领是使代码尽也许清楚。假如做得更好的话,纵然长短技强人
副问题[/!--empirenews.page--]

糟糕的代码可以运作,但迟早会让我们支付价钱。你有没有碰着过这样的题目:几周后,你无法领略本身的代码,于是不得不花上几个小时,乃至几天的时刻来弄清晰到底产生了什么。

办理这个常见题目的要领是使代码尽也许清楚。假如做得更好的话,纵然长短技强职员也应该能领略你的代码。

代码

是时辰遏制探求捏词,进步我们的代码质量了!

编写清楚的代码并没有那么伟大。本教程将向你展示五种改造代码的简朴能力,并提供一些实例:

1. 不消switch语句

我们凡是行使switch语句来取代大型if-else-if语句。可是,switch语句很是冗长,很难维护,乃至很难调试。这些switch语句把我们的代码弄得参差不齐,并且这些语句的语法很稀疏,很不惬意。在添加更多的case时,我们不得不必需手动添加每个case和break语句,而这就很轻易堕落。

接下来看一个switch语句的例子:

  1. function getPokemon(type) { 
  2.   let pokemon; 
  3.   switch (type) { 
  4.     case 'Water': 
  5.       pokemon = 'Squirtle'; 
  6.       break; 
  7.     case 'Fire': 
  8.       pokemon = 'Charmander'; 
  9.       break; 
  10.     case 'Plant': 
  11.       pokemon = 'Bulbasur'; 
  12.       break; 
  13.     case 'Electric': 
  14.       pokemon = 'Pikachu'; 
  15.       break; 
  16.     default: 
  17.       pokemon = 'Mew'; 
  18.   } 
  19.   return pokemon; 
  20.  
  21. console.log(getPokemon('Fire')); // Result: Charmander 

Switch语句

假如必要在switch语句中添加更多的case的话,必要编写的代码量是相等大的。我们也许最终会复制粘贴代码,而着实我们都知道这种举动的效果是什么。

那么,怎样停止行使switch语句呢?可以通过行使工具文本。工具文本简朴,易于编写,利便读取,维护轻松。我们都习习用javascript处理赏罚工具,工具文本语法比switch语句更奇怪。下面举个例子:

  1. const pokemon = { 
  2.     Water: 'Squirtle', 
  3.     Fire: 'Charmander', 
  4.     Plant: 'Bulbasur', 
  5.     Electric: 'Pikachu' 
  6.   }; 
  7.  
  8. function getPokemon(type) { 
  9.   return pokemon[type] || 'Mew'; 
  10. console.log(getPokemon('Fire')); // Result: Charmander 
  11.  
  12. // If the type isn't found in the pokemon object, the function will return the default value 'Mew' 
  13. console.log(getPokemon('unknown')); // Result: Mew 

行使工具文本更换switch

如你所见,可以行使运算符 || 添加默认值。假如在pokemon工具中找不到type,getpokemon函数将使mew返回为默认值。

小贴士:你也许已经留意到,我们在函数外部而不是内部声明pokemon工具。这样做是为了停止每次执行函数时都从头建设pokemon。

用映射也能到达同样的结果。映射就像工具一样是键-值对的荟萃。差异的是映射应承任何范例的键,而工具只应承字符串作为键。另外,映射尚有一系列风趣的属性和要领。

以下是行使映射的要领:

  1. const pokemon = new Map([ 
  2.     ['Water', 'Squirtle'], 
  3.     ['Fire', 'Charmander'], 
  4.     ['Plant', 'Bulbasur'], 
  5.     ['Electric', 'Pikachu'] 
  6.   ]); 
  7.  
  8. function getPokemon(type) { 
  9.   return pokemon.get(type) || 'Mew'; 
  10.  
  11. console.log(getPokemon('Fire')); // Result: Charmander 
  12. console.log(getPokemon('unknown')); // Result: Mew 

用映射取代switch语句

如你所见,当用工具文本或映射替代switch语句时,代码看起来更清晰、更直接。

2. 把前提语句写的更有描写性

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读