在js开发中,如何减少if else语句的使用

在js开发中,如何减少if else语句的使用


情况1:

 if(a为真){
     a = a;
  }else{
     a = b; 
  }

可写成: a = a || b;

情况2:

if(a == b){
   a = c;
}else{
  a = d;
}

可写成:a = (a == b) ? a : d;
备注:三目运算里复合语句的运用(三目运算不能出现return)

(a > 0) ? (alert("11"),document.title="22") : alert("33");

情况3:后端返回数据,前端根据状态进行不同操作

$.ajax().done(function(data){
  if(data.status == 'success'){
     //TODO
  }else if(data.status == 'fail'){
    //TODO
  }else{
    //TODO
  }
});

可写成:

$.ajax().done(function(data){
  switch(data.status){
     case 'success':
       //TODO
       break;
     case 'fail':
       //TODO
       break;
     default:
      //TODO
  }
});

情况4:根据类型给出不同的操作

function tipsTofruit(fruitType){
   if(fruitType == "苹果"){
      alert('这是苹果');
   }else if(fruitType == "梨"){
      alert('这是梨');
   }else if(fruitType == "香蕉"){
      alert('这是香蕉');
   }else{
      alert('乡下人,没见过这种水果');
   }
}

可写成:

function tipsTofruit(fruitType){
   switch(fruitType){
      case '苹果':
         alert('这是苹果');
         break;
      case '梨' :
         alert('这是梨');
         break;
      case '香蕉':
        alert('这是香蕉');
        break;
      default:
        alert('乡下人,没见过这种水果');
   }
} 

备注: case 后如果是表达式, switch(n) n设置为true
另一种的方式:(case下有较多相同的执行代码)

function tipsTofruit(fruitType){
   var data = {
       '苹果': '这是苹果',
       '梨': '这是梨',
       '香蕉': '这是香蕉'  
   }
   var flag = true;
   $.each(data,function(key){
     if(fruitType == key){
        alert(data[fruitType]);
        flag = false;
        return false;//结束遍历
     }  
   });
   if(flag){
    alert('乡下人,没见过这种水果');
   } 
}

你可能感兴趣的:(JavaScript)