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

这些被同事喷的JS代码气魄威风凛凛你写过几多?

发布时间:2019-02-17 09:05:03 所属栏目:建站 来源:殷荣桧
导读:此刻写代码比早年许多几何了,代码的名目都有 eslint、prettier、babel(写新版语法) 这些来担保,然而,技妙本领再高端都不能办理代码可读性(代码可否被将来的本身和同事看懂)的题目,由于这个题目只有人本身才气办理。我们写代码要写到下图中左边这样根基上

NO:函数成果紊乱,一个函数包括多个成果。最后就像能以一当百的先生傅一样,被乱拳打死(乱拳(成果伟大函数)打死先生傅(老措施员))

  1. function sendEmailToClients(clients) {  
  2.   clients.forEach(client => {  
  3.     const clientRecord = database.lookup(client)  
  4.     if (clientRecord.isActive()) {  
  5.       email(client)  
  6.     }  
  7.   })  

YES: 成果拆解,

  1. function sendEmailToActiveClients(clients) {  //各个击破,易于维护和复用  
  2.   clients.filter(isActiveClient).forEach(email)  
  3. }  
  4. function isActiveClient(client) {  
  5.   const clientRecord = database.lookup(client)  
  6.   return clientRecord.isActive()  

(6)优先行使呼吁式编程

NO: 行使for轮回编程

  1. for(i = 1; i <= 10; i++) { // 一看到for轮回让人顿生不想看的情愫  
  2.    a[i] = a[i] +1;  

YES:行使呼吁式编程

  1. let b = a.map(item => ++item) // 怎么样,是不是很好领略,就是把a的值每项加一赋值给b就可以了。此刻在javascript中险些全部的for轮回都可以被map,filter,find,some,any,forEach等呼吁式编成代替。 

(7)函数中过多的回收if else ..

No: if else过多

  1. if (a === 1) {  
  2.     ...  
  3. } else if (a ===2) {  
  4.     ...  
  5. } else if (a === 3) {  
  6.     ...  
  7. } else {  
  8.    ...  

YES: 可以行使switch更换或用数组更换

  1. switch(a) {  
  2.    case 1:  
  3.            ....  
  4.    case 2:  
  5.            ....  
  6.    case 3:  
  7.            ....  
  8.   default:  
  9.        ....  
  10. }  
  11. Or  
  12. let handler = {  
  13.     1: () => {....},  
  14.     2: () => {....}.  
  15.     3: () => {....},  
  16.     default: () => {....}  
  17. }  
  18. handler[a]() || handler['default']() 

三、只管行使ES6,有可以能的话ES7中新语法

(只摆列最常用的新语法,说真话,有些新语法不怎么常用)

(1)只管行使箭头函数

NO:回收传统函数

  1. function foo() {  
  2.   // code  
  3. }  
  4. YES:行使箭头函数  
  5. let foo = () => {  
  6.   // code  

(2)毗连字符串

NO:回收传统+号

  1. var message = 'Hello ' + name + ', it's ' + time + ' now' 

YES:回收模板字符

  1. var message = `Hello ${name}, it's ${time} now` 

(3)行使解构赋值

(编辑:湖南网)

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

热点阅读