实际逻辑情况:当需要多重if-else时,我们通常会面对比较复杂的代码
例如:
var custAtten = '';
if(str=='1'){
custAtten='<span class="cust-xxx">黑</span>';
}else if(str=='2'){
custAtten='<span class="cust-xxx">灰</span>';
}else if(str=='12'){
custAtten='<span class="cust-xxx">展</span>';
}else{
custAtten='';
}
return custAtten;
让代码组织比较“庞大”?
而通过采用&&、||、或者三目运算符的方式搭配,我们可以得到精简度更高的代码结构
var num = '12';
var str1 = '<span class="cust-xxx">黑</span>';
var str2 = '<span class="cust-xxx">灰</span>';
var str3 = '<span class="cust-xxx">展</span>';
var str = (num=='1'&&str1) ||(num=='2'&&str2)||(num=='12'&&str3)||'';
console.log(str);
或者
var add_step2= 2;
var str1 = '<span class="cust-xxx">黑</span>';
var str2 = '<span class="cust-xxx">灰</span>';
var str3 = '<span class="cust-xxx">展</span>';
var add_level2 = {'1':str1,'2':str2,'12':str3}[add_step2]||0;
console.log(add_level2);
的方式去减缩相关结构组织;
原理:
语言中||和&&都遵循“短路”原理;
如&&中第一个表达式为假就不会去处理后续表达式
而||正好相反,当第一个表达式为假时,仍然会处理后续表达式。
避免:
回避0、”“、null、false、undefined、NaN;它们都会被转换为false
以下例子:
console.log(Boolean(0)); //false
console.log(Boolean('')); //false
console.log(Boolean(null)); //false
console.log(Boolean(1)); //true
console.log(Boolean(undefined)); //false
console.log(Boolean(NaN)); //false