Salut, c'est Mathias je suis développeur web freelance et j'écris des tutoriels à propos des technologies Javascript, de la JAMSTACK et d'autres trucs.

© 2019 Mathias Béraud

Quel opérateur d'égalité en Javascript?

Quel est la différence entre == et === en Javascript et lequel utiliser?

Publié le 23 oct. 2019

En Javascript, on peut utiliser 2 opérateurs pour déterminer une égalité : == and ===. Alors, lequel utiliser et qu'est-ce qui les différencie

Comme on peut le voir ici :

== test l'égalité de la valeur après avoir essayé de convertir les 2 éléments en un type semblable : 1 est égal à la valeur contenue dans la chaîne de caractères "1".

=== test l'égalité de la valeur ET du type sans convertion préalable: 1 est un nombre et même si la chaîne de caractères contient 1 celui-ci est une chaîne de caratères ("1") et n'est donc pas du même type que le nombre 1.

Les types de données dites primitives sont Null, Boolean, undefined, String, Symbol et Number. Contrairement à la plupart des autres languages, le Javascript possède seulement un type de donnée numérale.

Tout ce qui n'est pas d'un des types énumérés ci-dessus est un Objet en Javascript : Array, Function et bien sûr Object. Pour que ceux-ci soient égaux ils doivent faire référence au même objet.

Un exemple pour comprendre:

Comme on peut le voir ici, ce qui compte c'est que la valeur de l'objet "Joseph" est l'objet "Bob" lui même, ils font référence au même objet en mémoire, par contre, "AlsoBob" est un objet différent occupant un autre espace mémoire et bien qu'ils contiennent la même valeur ils ne font pas référence au même objet et son donc différents.

En résumé on utilise === la plupart du temps et les cas où l'on aura besoin d'utiliser == sont très rares et/ou spécifiques.

Idem pour !== et != quand on vérifie cette fois la différence.