Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
É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 del'opérateur d'égalité, l'opérateur d'égalité stricte considère toujours des opérandes de types différents comme étant différents.
Dans cet article
Exemple interactif
console.log(1 === 1);// Expected output: trueconsole.log("hello" === "hello");// Expected output: trueconsole.log("1" === 1);// Expected output: falseconsole.log(0 === false);// Expected output: falseSyntaxe
x === y;Description
Les opérateurs d'égalité stricte (=== et!==) utilisentl'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 avecl'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"); // trueconsole.log("hello" === "hola"); // falseconsole.log(3 === 3); // trueconsole.log(3 === 4); // falseconsole.log(true === true); // trueconsole.log(true === false); // falseconsole.log(null === null); // trueComparaison d'opérandes de types différents
console.log("3" === 3); // falseconsole.log(true === 1); // falseconsole.log(null === undefined); // falseComparaison d'objets
const objet1 = { name: "coucou",};const objet2 = { name: "coucou",};console.log(objet1 === objet2); // falseconsole.log(objet1 === objet1); // trueSpécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-equality-operators> |