不管是刚刚会写代码的新手菜鸟,还是已经在代码界奋斗几年的老码农,
if else我想肯定是不会陌生的,而且肯定是用的不想再用了,
在这里我就分享一下怎么样可以减少if else的使用,使你的代码看上去就是有种高大上的感觉
先来一个最简单的例子,看代码
function foo(params){
if(params == 'red'){
console.log(1);
}else if(params == 'black'){
console.log(2);
}else if(params == 'yellow'){
console.log(3);
}else{
console.log(0);
}
}
这个方法应该很好理解吧,表示三种颜色对应的三个值,
ok,这是最简单也是最容易看懂的,但是这样使得代码的维护性以延展性看上去并不是那么的友好,
说白了,其实就是low,
那么,问题来了,怎么样使得这个看似简单的逻辑能够看上去高大上一点呢?
首先,有童鞋可能会想到switch,没错,这也是一种方法,
function foo(params){
switch(params){
case 'red':
console.log(1);
break;
case 'black':
console.log(2);
break;
case 'yellow':
console.log(3);
break;
default:
console.log(0);
}
}
这样看上去是比上面的if else要好维护多了,但是我们现在上升一个点来讲,这样的代码还是一般,
怎么说呢?打个比方说,
现在你就是个包工头,你要把手上的活分配给手下的伙计干,于是你需要一个个报名字,让那些伙计来领活儿干,看上去好像是没什么问题,
shuxing那么我们再上升一个点来说一下,我们可不可以不要报名字,直接让他们来拿任务呢?
ok,看下面的代码
function foo(params){
var handle = {},
handle['red'] = 1,
handle['black'] = 2,
handle['yellow'] = 3;
console.log(handle[params] || 0);
}
我先定义好了三种颜色所对应的值,所以在取参数的时候,就可以直接按照属性来取值了,
那么,上面的想法,其实就是包工头先将活儿的名称定义好,手下的人直接按照自己的定位来领取活儿,
而且这中想法的最大特点就是扩展性很强,如果说要加一个分支,就是新增一个属性,
虽然我举得例子很简单,但是可以减少很多的if else的出现,使得我们的代码拥有更好的可读性,
希望这种想法能被大家应用吧,嘿嘿!!