案例:
if (1 < 5 < 3) {
consle.log('这个本不该出现');
} else {
console.log('该出现的是我');
}
Expected:
该出现的是我
Result:
这个本不该出现
分析:
其实这里只要知道一点就可以很好的解决问题:
在js的逻辑运算中, false默认为0, true默认为1
比如说:
console(1 + false); // 1
console(10 * false); // 0
console(2 + true); // 1
console(2 * true); // 2
那么以上的案例中: 1 < 5 < 3, 1 < 5 首先为 false, 那么接下来就可以看作 (false) 0 < 3, 所以最终结果为true。输出了并不是我们期待的结果。
解决方案
console.log(1 < 5 && 5 < 3);