写好if语句

时间: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开发分享



声明: 本文由( zongyan86 )原创编译,转载请保留链接: 写好if语句

关注我们