É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 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
Loading…