endJS

== Is Not an Equivalence Relation

Javascript's == operation is not an equivalence relation. In order to be an equivalence relation, it must be reflexive, symmetric, and transitive. It turns out the only one it has going for it is symmetry. As for the other two, they are easy to prove false:

Transitivity

> '1' == 1
true
> 1 == '01'
true
> `1` == `01`
false

Reflexivity

> NaN == NaN
false