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

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

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
Strict equality (a === b)

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Voir aussi