| 
                         NO:函数功能混乱,一个函数包含多个功能。最后就像能以一当百的老师傅一样,被乱拳打死(乱拳(功能复杂函数)打死老师傅(老程序员)) 
- function sendEmailToClients(clients) {  
 -   clients.forEach(client => {  
 -     const clientRecord = database.lookup(client)  
 -     if (clientRecord.isActive()) {  
 -       email(client)  
 -     }  
 -   })  
 - } 
 
  
YES: 功能拆解, 
- function sendEmailToActiveClients(clients) {  //各个击破,易于维护和复用  
 -   clients.filter(isActiveClient).forEach(email)  
 - }  
 - function isActiveClient(client) {  
 -   const clientRecord = database.lookup(client)  
 -   return clientRecord.isActive()  
 - } 
 
  
(6)优先使用命令式编程 
NO: 使用for循环编程 
- for(i = 1; i <= 10; i++) { // 一看到for循环让人顿生不想看的情愫  
 -    a[i] = a[i] +1;  
 - } 
 
  
YES:使用命令式编程 
- let b = a.map(item => ++item) // 怎么样,是不是很好理解,就是把a的值每项加一赋值给b就可以了。现在在javascript中几乎所有的for循环都可以被map,filter,find,some,any,forEach等命令式编成取代。 
 
  
(7)函数中过多的采用if else .. 
No: if else过多 
- if (a === 1) {  
 -     ...  
 - } else if (a ===2) {  
 -     ...  
 - } else if (a === 3) {  
 -     ...  
 - } else {  
 -    ...  
 - } 
 
  
YES: 可以使用switch替代或用数组替代 
- switch(a) {  
 -    case 1:  
 -            ....  
 -    case 2:  
 -            ....  
 -    case 3:  
 -            ....  
 -   default:  
 -        ....  
 - }  
 - Or  
 - let handler = {  
 -     1: () => {....},  
 -     2: () => {....}.  
 -     3: () => {....},  
 -     default: () => {....}  
 - }  
 - handler[a]() || handler['default']() 
 
  
三、尽量使用ES6,有可以能的话ES7中新语法 
(只罗列最常用的新语法,说实话,有些新语法不怎么常用) 
(1)尽量使用箭头函数 
NO:采用传统函数 
- function foo() {  
 -   // code  
 - }  
 - YES:使用箭头函数  
 - let foo = () => {  
 -   // code  
 - } 
 
  
(2)连接字符串 
NO:采用传统+号 
- var message = 'Hello ' + name + ', it's ' + time + ' now' 
 
  
YES:采用模板字符 
- var message = `Hello ${name}, it's ${time} now` 
 
  
(3)使用解构赋值 
                        (编辑:泰州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |