JavaScript triple equals and three-variable comparison

Can someone explain this?

1 == 1 //true, as expected 1 === 1 //true, as expected 1 == 1 == 1 //true, as expected 1 == 1 == 2 //false, as expected 1 === 1 === 2 //false, as expected 1 === 1 === 1 //false? <-- 

There is also a name for logical logic that compares more than two numbers in this way (I called it a “three-listed comparison”, but I think it would be wrong ...)

+4
source share
2 answers

This expression:

 1 === 1 === 1 

Calculated as:

 (1 === 1) === 1 

After evaluating the expression in parentheses:

 true === 1 

And this expression is logically false. The expression below returns true as expected, though:

 1 === 1 === true 
+8
source

Equality is a priority operation from left to right .

So:

 1 == 1 == 1 true == 1 true 

and

 1 === 1 === 1 true === 1 false // because triple-equals checks type as well 
+2
source

All Articles