A transitividade da igualdade do JavaScript é estranha
Eu tenho lidoDouglas Crockford'sJavaScript: As Boas Peças, e me deparei com este exemplo estranho que não faz sentido para mim:
'' == '0' // false
0 == '' // true
0 == '0' // true
false == undefined // false
false == null // false
null == undefined // true
O autor também menciona "nunca usar==
e!=
. Em vez disso, sempre use===
e!==
". No entanto, ele não explica por que o comportamento acima é exibido? Então, minha pergunta é: por que os resultados acima são como são? A transitividade não é considerada em JavaScript?