É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.

We'd love to hear more about your role and the company you work for
Please help us by answering a few questions.

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® 2025 Language Specification
# sec-equality-operators

Compatibilité des navigateurs

Voir aussi