Can somebody explain this?
1 == 1 //true, as expected
1 === 1 //true, as expected
1 == 1 == 1 //true, as expected
1 == 1 == 2 //false, as ex
Equality is a left-to-right precedence operation.
So:
1 == 1 == 1
true == 1
true
And:
1 === 1 === 1
true === 1
false // because triple-equals checks type as well
This expression:
1 === 1 === 1
Is evaluated as:
(1 === 1) === 1
After evaluating the expression inside parentheses:
true === 1
And that expression is logically false. The below expression returns true
as expected though:
1 === 1 === true