=== (égalité stricte) compare la valeur et le type sans conversion. == (égalité faible) effectue d'abord une coercition de type, ce qui entraîne des résultats surprenants.
== ;
== ;
== ;
== ;
== ;
=== ;
=== ;
=== (égalité stricte) compare la valeur et le type sans conversion. == (égalité faible) effectue d'abord une coercition de type, ce qui entraîne des résultats surprenants.
== ;
== ;
== ;
== ;
== ;
=== ;
=== ;
Les règles de coercition ne sont pas évidentes et conduisent à des bogues. Par exemple, [] == ![] vaut true (une bizarrerie notoire). Vous ne voulez rarement que JavaScript convertisse silencieusement les types dans votre dos lors d'une comparaison.
Utilisez toujours === (et !==). La seule exception courante et intentionnelle est de vérifier null ou undefined ensemble :
if (value == null) { ... } // true for BOTH null and undefined — a deliberate idiom
Pour tout le reste, l'égalité stricte rend les comparaisons prévisibles. Pour comparer des objets, vous avez besoin d'une vérification d'égalité profonde (ils se comparent par référence, donc {a:1} === {a:1} est false).