为什么 (0 < 5 < 3) 返回 true?

我在 jsfiddle.net 里玩,我很好奇为什么这又回来了?

if(0 < 5 < 3) {
    alert("True");
}

这也是这样:

if(0 < 5 < 2) {
    alert("True");
}

但事实并非如此:

if(0 < 5 < 1) {
    alert("True");
}

这个怪癖有用吗?


答案 1

操作的顺序导致在javascript中被解释为产生,并且true被计为1,导致它返回true。(0 < 5 < 3)((0 < 5) < 3)(true < 3)

这也是为什么返回 false, 返回 true,这被解释为 ,导致 .(0 < 5 < 1)(0 < 5)1(1 < 1)


答案 2

我的猜测是因为这是真的,并且被投射到哪个是真的。0 < 5true < 31 < 3