时间:19-05-05 栏目:ES6[ES2015], Javascript, web前端 作者:zongyan86 评论:0 点击: 3,637 次
项目开发中,每次看到if嵌套都是生无可恋,小编,甚至看过二十几层的if嵌套,简直摸不到北。现在来总结下,if比较优雅的写法。
1、更少的嵌套,尽早返回
1 2 3 | if(!obj) throw new Error('不存在obj!'); if(!objs.includes(obj)) return false; if(other){} |
2、Array.includes 替代多个||或条件
3、使用默认的函数参数和解构
1 2 3 4 5 6 7 8 9 10 | function test(obj){ if(obj && obj.name){ }else{ } } function test({name} = {}) { console.log (name || 'unknown'); } |
4、适当选择Map或对象字面量,而不是if->switch 语句
1 2 3 4 5 6 7 8 9 | const obj= { x: ['xman', 'xwoman'], y: ['yes', 'yeah'], z: ['zero', 'z'] }; function test(letter) { return obj[letter] || []; } |
1 2 3 4 5 6 7 8 | const obj= new Map() .set('x', ['xman', 'xwoman']) .set('y', ['yes', 'yeah']) .set('z', ['zero', 'z']); function test(letter) { return obj.get(letter) || []; } |
5、换种思维,善用函数
1 2 3 4 5 6 7 8 9 10 11 12 13 | function test(letter) { return letterArr.filter(item => item.letter===letter); } const isAllx = letters.every(item => item.letter === 'x'); const isAnyx = letters.some(item => item.letter === 'x'); [NaN].indexOf(NaN) //-1 [NaN].findIndex(y => Object.is(NaN, y)) // 0 …… |
6、善用正则及条件三目运算符
1 | int value = condition ? 1 : 2; |
web开发分享