Égalité stricte et égalité faible

Les opérateurs de comparaison nous permettent, bien entendu, de comparer deux valeurs et de définir si l’une est plus grande, plus grande et équivalente, ou inversement plus petite et plus petite et équivalente.

Mais comment définir si une valeur est équivalente à une autre, sachant que le signe égal n’est pas un opérateur de comparaison, mais un opérateur d’affectation ? Pour ce faire, nous avons à disposition, deux opérateurs. Le double égal “==” et le triple égal “===”.

Mais quelles sont leurs différences?

“==” ou l’égalité faible
Lorsque l’on utilise cet opérateur, il faut être conscient qu’il va nous permettre de comparer deux valeurs équivalentes, mais potentiellement de type différent. Il nous propose donc une coercition. Cela veut dire qu’une transformation va se faire pour pouvoir comparer les deux valeurs dans un certain type, et si ces valeurs sont équivalentes dès lors, alors cette comparaison va nous répondre “true”.

Par exemple

const age = "18";

Cette constante stock 18 mais dans une chaine de caractère.

const adulte = 18;

Cette constante stock 18 mais en chiffre.

const isAdult = age == adulte;

Nous répond “true”, car une coercition se fait et donc les deux valeurs deviennent équivalentes.

=== ou l’égalité strict

Lorsque l’on utilise cet opérateur, on compare bien entendu deux valeurs, mais celles-ci doivent être strictement identiques. C’est-à-dire que cet opérateur ne propose pas de coercition. Il retournera “true” uniquement si les deux valeurs sont équivalentes et du même type.

Pour reprendre l’exemple plus haut, si:

const isAdult = age === adulte;

Le résultat va nous répondre “false”, car les types des deux valeurs sont différents et donc il n’est pas possible, sans coercition, de pouvoir comparer ces deux valeurs grâce à cet opérateur.

Il est toujours préférable d’utiliser l’égalité stricte pour éviter des interprétations étranges de la par de l’égalité faible. Il vous sera donc parfois nécessaire de convertir vos valeurs avant de les comparer. Cette étape peut paraître superflue, mais elle vous permettra d’éviter de mauvaises surprises.

Comme pour l’égalité, il existe l’inégalité stricte et l’inégalité faible. L’inégalité stricte s’écrit “!==” et l’égalité faible s’écrit “!=”. Elle fonctionne de la même manière que l’égalité dans les faits, mais à l’inverse.

arrow-up-circle