1.几乎所有语言中||和&&都遵循“短路”原理,如&&中第一个表达式为假就不会去处理第二个表达式,而||正好相反。
2.在js逻辑运算中,0、""、null、false、undefined、NaN都会判为false,其他都为true
// 例:
// aaa为10时,bbb为1;
// aaa为20时,bbb为2;
// aaa为30时,bbb为3;
// aaa为40时,bbb为4;
// 其他情况bbb为0。
//利用if else :
var aaa
var bbb
if (aaa == 10) {
bbb = 1;
}
else if (aaa == 20) {
bbb = 2;
}
else if (aaa == 30) {
bbb = 3;
}
else if (aaa == 40) {
bbb = 4;
}
else {
bbb = 0;
}
// 利用与或运算符特性:
// 几乎所有语言中||和&&都遵循“短路”原理,如&&中第一个表达式为假就不会去处理第二个表达式,而||正好相反。
var bbb = (aaa == 10 && 1) || (aaa == 20 && 2) || (aaa == 30 && 3) || (aaa == 40 && 4) || 0;
// 利用对象属性
var bbb = { '10': 1, '20': 2, '30': 3, '40': 4 }[aaa] || 0;
// 在js逻辑运算中,0、""、null、false、undefined、NaN都会判为false,其他都为true
// var abc = abc || "" 用于设置默认值
// js中||和&&的特性帮我们精简了代码的同时,也带来了代码可读性的降低。这就需要我们自己来权衡了。