最近在寫代碼的時候,用了不少if else,當然不影響功能,但是後期維護感覺更加麻煩了,有點難理解,就像是回調地獄一樣,看了讓人害怕,隨着邏輯複雜度的增加,代碼中的if/else/switch會變得越來越臃腫,這我也記錄下,簡單優化下臃腫的代碼,起碼看起來整潔一些。
一:switch case
我相信這也是大家平時常用優化if else的一種方法,寫法看起來比較易懂,性能並沒有提高。
舉例:
if (number === 0) {
} else if (number === 1) {
string = "一";
} else if (number === 2) {
string = "二";
} else if (number === 3) {
string = "三";
} else if (number === 4) {
string = "四";
} else if (number === 5) {
string = "五";
} else if (number === 6) {
string = "六";
}
switch (number) {
case 1 :
string += "一";
break;
case 2 :
string = "二";
break;
case 3 :
string = "三";
break;
case 4 :
string = "四";
break;
case 5 :
string = "五";
break;
case 6 :
string = "六";
break;
}
二:hash 表
存到對象裏面,直接取出
if (key == "Apple") {
val = "Jobs";
} else if (key == "microsoft"){
val = "Gates";
} else if (key == "Google"){
val = "Larry";
}
var ceos = {"Apple":"Jobs", "microsoft":"Gates", "Google":"Larry"};
val = ceos[key];
其他方法
(1)三元運算
適合簡單的 if(){}else{}
情況。
(2)邏輯與運算符
有些時候我們可以使用邏輯與運算符來簡化代碼(&&和||)
(3)includes
處理多重條件
if( code === '202' || code === '203' || code === '204' ){
someMethod()
}
//改成
if( ['202','203','204'].includes(code) ){
someMethod()
}