问题

代码中if else 语句过多可能会带来的问题: 代码冗余,可读性差,不易维护, 一旦有修改,费时费力,浪费开发者的脑细胞。

思考

if语句通常会让代码更加复杂,但凡事无绝对,这不代表可以完全抛弃if语句,存在必有其价值,只要找对合适的使用场景即可。我这里的减少if语句的使用,只针对于代码冗余,有深度嵌套或者有扩展和修改需求的可能性,为了便于维护,我们要多一些思考和预备方案。

方案

方案一:

if (a为真) {
    a = a
} else {
    a = b
}
可写成:a = a || b
或写成:a = a ? a : b

方案二:三元运算符替换

if (a === b) {
    a = c
} else {
    a = d
}
可写成:a = (a === b) ? c : d

方案三:先处理特殊情况尽早return,少使用else

if (!a) {
    return;
}
code block;

方案四:swich语句

if (a > 1 && result < 10) {
    return 0;
} else if (a > 10 && a < 20) {
    return 1;
} else {
    return 2;
}
// 可写成:
switch (a) {
case (a > 1 && a < 10):
    return 0;
    break;
case (a > 10 && a < 20):
    return 1;
    break;
default:
    return 2;
}

方案五:对象

if (a === 1) {
    return 'one';
} else if (a === 2) {
    return 'two';
} else if (a === 3) {
    return 'three';
} else {
    return '';
}
// 可写成:
aoo = {
    1: 'one',
    2: 'two',
    3: 'three'
}
return aoo[result] ? aoo[result] : '';

简单整理,欢迎补充~

最后建议,如果需要判断不是很多的话还是使用 if 即可。