=== (igualdad estricta) compara valor y tipo sin conversión. == (igualdad débil) realiza primero una coerción de tipos (type coercion), lo que lleva a resultados sorprendentes.
js
== ;
== ;
== ;
== ;
== ;
=== ;
=== ;
=== (igualdad estricta) compara valor y tipo sin conversión. == (igualdad débil) realiza primero una coerción de tipos (type coercion), lo que lleva a resultados sorprendentes.
== ;
== ;
== ;
== ;
== ;
=== ;
=== ;
Las reglas de coerción no son obvias y provocan errores. Por ejemplo, [] == ![] es true (un caso notorio). Rara vez quieres que JavaScript convierta tipos en silencio a tus espaldas durante una comparación.
Usa siempre === (y !==). La única excepción común e intencional es comprobar null o undefined a la vez:
if (value == null) { ... } // true for BOTH null and undefined — a deliberate idiom
Para todo lo demás, la igualdad estricta mantiene las comparaciones predecibles. Para comparar objetos necesitas una comprobación de igualdad profunda (se comparan por referencia, así que {a:1} === {a:1} es false).