Égalité stricte (===)
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 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
trueuniquement s'ils réfèrent au même objet. - Si les deux opérandes valent
nullou 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.
+0and-0sont 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
trueou 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> |
Compatibilité des navigateurs
Chargement…