讓繁瑣的if else逼格高一點點

在提高本身技術水平每一個人可能有不一樣的方式
看別人好的代碼和本身多寫代碼是一個比較好的選擇。後端

先來模擬一種場景好比
後端返回一個內容
而後咱們須要根據返回的字段不一樣值進行顯示內容數組

先看一段可能咱們最容易會寫的代碼spa

var code = 0;
if(code == 0){
    show("正確");
}else if(code == 1){
    show("不正確,已過時")
}else if(code == 2){
    ......
}

由於這裏只有單一的code的變化去顯示內容
咱們還可能會想到用如下的方式code

switch(code){
    case 0:
        show("正確");
    case 1
        show("不正確,已過時");
    ......
}

這兩種形式其實沒什麼太大的區別
我一般遇到這種狀況的時候
是這樣寫的對象

var codeInfo = ["正確", "不正確,已過時" ......];
show(codeInfo[code])

若是返回的code沒有對應的數組下標的話
申明變量的時候就改爲對象的形式blog

var codeInfo = {
    0 : "正確",
    1 : "不正確,已過時"
    ......
}

若是比較複雜的狀況
根據狀態的不一樣,而後方法也不一樣,能夠這樣作ip

var codeFunc = {
    0 : function(){
        show("正確")
    },
    1 : function(){
        alert("不正確,已過時")
    }
    ......
}
codeFunc[code]();

以前寫過一段很是複雜的邏輯,
複雜到不可思議那種。
總共十幾種狀態,每一種狀態又是根據 不一樣字段組合而成的。
以前的代碼都是 if else 作下來的
反正不去動它其實也不是說難以維護
可是總歸就是看起來low。
重構的話就是按照上面那種思想去處理的。
能夠稍微感覺一下it

640?wx_fmt=jpeg&tp=png&wxfrom=5&wx_lazy=1

我之前的後端領導跟我講過
寫代碼就跟建管道同樣
一條管道永遠是最易維護的
因此咱們要把預先不要的東西放到最上面
好比io

if(abc){
    func(...);
}else{
    return;
}


if(!abc) return;
func(...);

這兩種方式
在代碼整潔和可讀上面
咱們都應該選擇第二種形式function

初期可能咱們寫的代碼可能比較難看
若是時間容許的狀況下,能夠抽空去改一下以前的這種邏輯很複雜的代碼。
或許會獲得不少咱們意想不到的知足感。

clipboard.png

ps:早睡早起,常作運動,多與異性交朋友~

相關文章
相關標籤/搜索