Why 3 > 2 > 1 gives false

Recently, I saw this question about how does Javascript evaluate an expression:
So, why does 1 < 2 < 3 give true, but 3 > 2 > 1 give false? According to operator precedence and associativity, they are evaluated from left to right. So...
1 < 2 < 3is evaluated as(1 < 2) < 3.1 < 2istrue, making the expressiontrue < 3.- How does it compare a
trueagainst a number? It does this by first converting the boolean to a number.trueis converted to1andfalseis converted to0(see 7.1.14 of the ECMAScript specififcation). Thus, the expression is evaluated as1 < 3which givestrue.
Now for 3 > 2 > 1:
- Going left to right,
3 > 2is evaluated first which istrue. The expression becomestrue > 1. - To evaluate,
trueis converted to1. This gives1 > 1, which isfalse!
For bonus points, try figuring out 1 < 3 > 2 and 1 > 3 < 2 gives.
(originally posted on Dev.to)




