← 返回首页
Égalité stricte (===) - JavaScript | MDN

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 Large disponibilité

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.

Dans cet article

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

Spécification
ECMAScript® 2027 Language Specification
# sec-equality-operators

Compatibilité des navigateurs

Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.

Voir aussi