关于if else语句的优化

在日常开发工作中,只要是写业务就离不开条件判断,if、else、else if很常见,工作中看到项目中有一连串的逻辑判断,显然有优化空间的。

需求

写一个returnWeekDay方法,返回今天是星期几

入门

当我们拿到需求,看到设计逻辑判断,首先想到if语句了

function returnWeekDay() {
        var date = new Date().getDay();
        if (date == 0) {
            return '星期日'
        }else if (date == 1) {
            return '星期一'
        } else if (date == 2) {
            return '星期二'
        } else if (date == 3) {
            return '星期三'
        } else if (date == 4) {
            return '星期四'
        } else if (date == 5) {
            return '星期五'
        } else if (date == 6) {
            return '星期六'
        }
    }
复制代码

当我们写完,直观感受到有太多的if else代码块了,看着就不舒服。 除了if语句,我们最容易想到的可能就是switch语句,我们用switch来实现一下。

 function getWeek() {
        var date = new Date().getDay();
       switch(date){
        case 0:return '星期日';
        break;
        case 1:return '星期一';
        break;
        case 2:return '星期二';
        break;
        case 3:return '星期三';
        break;
        case 4:return '星期四';
        break;
        case 5:return '星期五';
        break;
        case 6:return '星期六';
        break;
       }
    }
复制代码

这里的结构比if语句清晰多了

中级

我们看到case都是数字,可以考虑用数组进行优化

function getWeek() {
        var date = new Date().getDay();
       var arr = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];
       return arr[date];
    }
复制代码

如果case返回的是没有规律的字符串,考虑用对象进行优化

function getWeek() {
        var date = new Date().getDay();
       var obj = 
       {
        0:'星期日',
        1:'星期一',
        2:'星期二',
        3:'星期三',
        4:'星期四',
        5:'星期五',
        6:'星期六',
       }; 
       return obj[date];
    }
复制代码

其他常见优化手段

三元运算符

let aa = 10;
let flag = aa>100?true:false;
适合简单的if else逻辑判断
复制代码

逻辑&&运算符

有时候使用逻辑与运算符简化代码
flag&&sonmeMethod()
复制代码

使用include处理多重条件

有时候有这样的代码
if(code=='200'||code=='201'||code=='202'){
    someMethod();
}
可以改写成
if(['200','201','202'].include(code)){
    someMthod();
}
复制代码

转载于:https://juejin.im/post/5cfdbe49f265da1bbb03cee6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值