javascript中对条件判断语句的优化

不管写什么程序,平时都会用到条件语句,如:if...else... switch这样的语句,来达到对条件的判断。下面看来一段代码:

function abc(test){
    if (test == 1){
        console.log('test的值是'+test);
    }
    else if (test == 2){
        console.log('test的值是'+test);
    }
    else if (test == 3){
        console.log('test的值是'+test);
    }
    else if (test == 4){
        console.log('test的值是'+test);
    }
}

abc(1);
abc(2);
abc(3);
abc(4);

结果如下:

test的值是1
test的值是2
test的值是3
test的值是4
[Finished in 0.1s]

其实在平时的代码开发中这并没有什么问题,但是很多的时候我们都希望自己的代码能够变的优雅和简单易懂,并且尽可能少的减少重复的代码。对于以上的问题,在js中存在一个switch来代替这样的多if语句判断。

优化后的代码如下:

function bcd(test){
    switch(test){
        case 1:
            console.log('test的值是'+test);
            break;
        case 2:
            console.log('test的值是'+test);
            break;
        default:
            console.log('test的值是null');
    }
}

bcd();
bcd(1);

结果如下:

test的值是null
test的值是1

那么在js中有没有更好的方法来做到呢?使用js对象的特点可以轻松对switch进行优化,代码如下:

function dcf(test){
    return({
            cat :function(){console.log('cat');},
            dog :function(){console.log('dog');},
            zhiqiang : function(){console.log('zhiqiang');}
        }[test] || function(){console.log('我是默认值');}
    )();
}

dcf();
dcf('dog');

我是默认值
dog

这里主要作用到两个知识点:1.js获取对象属性的值2.||操作符取值的问题。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值