Égalité
Lorsque nous écrivons un programme, nous avons souvent besoin de déterminer l'égalité entre différentes variables. Ce test de comparaison est réalisé grâce à un opérateur d'égalité. L'opérateur d'égalité le plus courant est le double égal ==
. Cet opérateur permet de déterminer si deux variables sont égales l'une à l'autre, ce même si elles ne sont pas du même type.
Par exemple, considérons:
let foo = 42;
let bar = 42;
let baz = "42";
let qux = "life";
Comme on peut s'y attendre, foo == bar
sera évalué à true
tandis que baz == qux
sera évalué false
. Cependant, foo == baz
sera également évalué à true
en dépit du fait que foo
et baz
sont de types différents. En coulisses, l'opérateur d'égalité ==
essaye de forcer les opérandes à être de même type pour pouvoir effectuer la comparaison. C'est la différence significative qui existe avec l'opérateur d'égalité ===
.
L'opérateur d'égalité triple égal ===
évalue l'égalité en se basant à la fois sur la valeur des variables et sur leur type. Si l'on reprend l'exemple précédent, cela revient à dire que foo === bar
sera toujours évalué à true
, mais que foo === baz
sera à présent évalué false
. En effet, bien que les valeurs semblent être égales, le type des variables diffère, l'égalité n'est pas retenue par l'opérateur triple égal. Quant à lui, baz === qux
sera toujours false
.
let str1 = "hello"; let str2 = "HELLO"; let bool1 = true; let bool2 = 1; // comparez en utilisant == let stringResult1 = str1 == str2 // false let boolResult1 = bool1 == bool2 // true // comparez en utilisant === let stringResult2 = str1 === str2 // false let boolResult2 = bool1 === bool2 // false
assert(stringResult1 === false && stringResult2 === false && boolResult1 ==true && boolResult2 === false );