为什么 5<4<2 返回 true?

Why 5<4<2 is returning true?

我正在练习Javascript。我遇到了一种情况,我正在比较 3 个数字,如下所示:

console.log(5<4<2);

它 returns 是的。现在我不明白为什么。根据运算符优先级,它必须从左到右求值,这意味着 false<2。在这种情况下js做了什么奇怪的事情吗?

这是因为 Operator precedence

Less than (<) 运算符从 从左到右计算 .

首先 5<4 被评估为 false 然后 false 在下一次评估中被转换为 0。最后 0<2 被评估为 true

console.log(5<4);// false
console.log(0<2);// true