JS开发中,5种方法减少if else的使用频率

519 阅读2分钟

在日常的编码工作中,随着业务逻辑的复杂性增加以及功能的不断迭代,做code review时经常发现代码中会有大量的if/else结构,这些结构往往会导致代码不够美观,并且if数量级一旦上升代码的可读性也会持续下降。所以作为前端开发,应该如何来优化过多的if/else结构呢?

方式一: 使用三元运算符

对于简单的if/else条件判断,可以直接使用三元运算符来代替

方式二:优化if逻辑

优化目标:最小化的减少判断条件的数量

优化方法:

  • 最常见的if条件放在最前方
  • 合理整合判断条件,尽可能的把更多相同处理方式的判断条件放在一起
   if(num < 100) {
       // do something
   } else if (num > 100 && num < 1000) {
       // do else something
   } else {
       // do others
   }

如上的demo中,如果num最常出现的是大于100小于1000的数字,那每次进入正确的判断体内都要运算两次条件,就应该将其条件放在首位

方式三:合理使用switch/case

switch和if/else在性能上是没有什么较大区别的,主要还是根据各自需求进行分析和选择

  • 如果条件数量较少,使用if/else较合适,清晰明了
  • 如何条件数量较多,则建议使用switch/case

方式四:多使用hash

例如以下代码

let val = '';
if (key == "apple") {
    val = "1";
} else if (key == "banana"){
    val = "2";
} else if (key == "orange"){
    val = "3";
}

使用hash结构后的代码

const obj = {
    apple: 1,
    banana: 2,
    orange: 3,
}
return obj[type];

方式五:使用面向对象的继承或组合

使用最常见的例子来说明一下

1.如果是狗,则汪汪
2.如果是猫,则喵喵
3.如果是羊,则咩咩
4.如果是鸭,则嘎嘎

改成面向对象利用class

    1.定义动物类
    2.在原型链上定义其方法:叫
    3.定义子类:狗 猫 羊 鸭
    4.每个子类可重写原型链上的方法