##在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('乡下人,没见过这种水果');
}
}