Égalité stricte (===)
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
L'opérateur d'égalité stricte (===
) vérifie si ses deux opérandes sont égaux et renvoie un booléen correspondant au résultat. À la différence de l'opérateur d'égalité, l'opérateur d'égalité stricte considère toujours des opérandes de types différents comme étant différents.
Exemple interactif
console.log(1 === 1); // Expected output: true console.log("hello" === "hello"); // Expected output: true console.log("1" === 1); // Expected output: false console.log(0 === false); // Expected output: false
Syntaxe
x === y;
Description
Les opérateurs d'égalité stricte (===
et !==
) utilisent l'algorithme de comparaison d'égalité stricte pour comparer deux opérandes.
Si les opérandes sont de types différents, on renvoie
false
.Si les deux opérandes sont des objets, on renvoie
true
uniquement s'ils réfèrent au même objet.Si les deux opérandes valent
null
ou si les deux opérandes valentundefined
, on renvoietrue
.Si au moins l'un des opérandes vaut
NaN
, on renvoiefalse
.Sinon, on compare la valeur des deux opérandes :
- Les nombres doivent avoir la même valeur.
+0
and-0
sont considérés comme égaux. - Les chaînes de caractères doivent avoir les mêmes caractères, dans le même ordre.
- Les booléens doivent avoir la même valeur (tous les deux
true
ou tous les deuxfalse
).
- Les nombres doivent avoir la même valeur.
La différence fondamentale avec l'opérateur d'égalité (==
) est que, lorsque les opérandes sont de types différents, ==
tentera une conversion vers un type commun avant la comparaison.
Exemples
Comparaison d'opérandes de même type
console.log("hello" === "hello"); // true console.log("hello" === "hola"); // false console.log(3 === 3); // true console.log(3 === 4); // false console.log(true === true); // true console.log(true === false); // false console.log(null === null); // true
Comparaison d'opérandes de types différents
console.log("3" === 3); // false console.log(true === 1); // false console.log(null === undefined); // false
Comparaison d'objets
const objet1 = { name: "coucou", }; const objet2 = { name: "coucou", }; console.log(objet1 === objet2); // false console.log(objet1 === objet1); // true
Spécifications
Specification |
---|
ECMAScript® 2026 Language Specification # sec-equality-operators |