优化if else

在代码里可以经常看到一大串的if()else if(){}逻辑判断,明显是有优化空间的。

原始代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function demo(date) {
let string = '今天是星期'
if (date === 0) {
string += '日'
} else if (date === 1) {
string += '一'
} else if (date === 2) {
string += '二'
} else if (date === 3) {
string += '三'
} else if (date === 4) {
string += '四'
} else if (date === 5) {
string += '五'
} else if (date === 6) {
string += '六'
}
return string
}

使用switch优化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function demo(date) {
let string = '今天是星期'
switch (date) {
case 0 :
string += '日'
break
case 1 :
string += '一'
break
case 2 :
string += '二'
break
case 3 :
string += '三'
break
case 4 :
string += '四'
break
case 5 :
string += '五'
break
case 6 :
string += '六'
break
}
return string
}

貌似没什么区别

表驱动优化

1
2
3
4
5
function demo(date) {
let string = '今天是星期'
let weekList = ['天','一','二','三','四','五','六']
return string + weekList[date]
}

这样看起来就比if语句和switch语句清晰多了