Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

É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

js
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 valent undefined, on renvoie true.
  • Si au moins l'un des opérandes vaut NaN, on renvoie false.
  • 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 deux false).

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

js
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

js
console.log("3" === 3); // false

console.log(true === 1); // false

console.log(null === undefined); // false

Comparaison d'objets

js
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

Voir aussi