我在jsfiddle.net上玩耍,想知道为什么这会返回true?
if(0 < 5 < 3) {
alert("True");
}
那么这个也是一样的:
if(0 < 5 < 2) {
alert("True");
}
但这个不行:
if(0 < 5 < 1) {
alert("True");
}
这种怪癖有用处吗?
我在jsfiddle.net上玩耍,想知道为什么这会返回true?
if(0 < 5 < 3) {
alert("True");
}
那么这个也是一样的:
if(0 < 5 < 2) {
alert("True");
}
但这个不行:
if(0 < 5 < 1) {
alert("True");
}
这种怪癖有用处吗?
0 < 5 < 3
==> ( ( 0 < 5 ) < 3 )
==> true < 3
==> 1 < 3
==> true
当布尔操作数与数学运算符一起使用时,会返回一个数字。为了检查这一点,我们可以执行以下操作:
true + 1 which gives you 2.
0 < 5
,与数学运算符(<)操作的布尔值(true)将返回一个数字。因此它可以归结为1<3,其返回true
。// Case 1
console.log(1 < 2 < 3); // true
// Case 2
console.log(3 > 2 > 1); // false
尝试将您的结果表述为Number()
if(Number(0) < Number(5) < Number(3)) {
alert("True");
}
或者尝试这个:
if(Number(0) < Number(5) && Number(5) < Number(3)) {
alert("True");
}
我搜索了一下这个问题,因为我得到的结果是(3 >= 20) //返回true
,我猜JavaScript想把值3
当做布尔类型来检查,因为这个值是从elm.getAttribute();
函数获取的,并且console.log();
以字符串形式打印出来。