Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Référence
  4. Expressions et opérateurs
  5. Égalité (==)

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 EnglishAlways switch to English

Égalité (==)

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é (==) vérifie si ses deux opérandes sont égaux et renvoie un booléen indiquant le résultat de la comparaison. À la différence de l'opérateurd'égalité stricte, l'opérateur d'égalité tente de convertir ses opérandes avant la comparaison si ceux-ci sont de types différents.

Exemple interactif

console.log(1 == 1);// Expected output: trueconsole.log("hello" == "hello");// Expected output: trueconsole.log("1" == 1);// Expected output: trueconsole.log(0 == false);// Expected output: true

Syntaxe

js
x == y;

Description

Les opérateurs d'égalité (== et!=) utilisentl'algorithme de comparaison d'égalité abstraite pour comparer deux opérandes. On peut le résumer ainsi :

  • Si les opérandes sont deux objets, on renvoietrue uniquement si les deux opérandes référencent le même objet.

  • Si un opérande vautnull et que l'autre vautundefined, on renvoietrue.

  • Si les opérandes sont de types différents, on tente une conversion pour avoir le même type de part et d'autre avant la comparaison :

    • Si on compare un nombre à une chaîne de caractères, on tentera de convertir la chaîne en une valeur numérique.
    • Si l'un des opérandes est un booléen, on le convertira en 1 s'il vauttrue et en +0 s'il vautfalse.
    • Si l'un des opérandes est un objet et que l'autre est un nombre ou une chaîne de caractères, on tentera de convertir l'objet en une valeur primitive grâce aux méthodesvalueOf() ettoString() de l'objet.
  • Si les opérandes sont du même types, on les compare comme suit :

    • String : on renvoietrue uniquement si les deux opérandes ont les mêmes caractères dans le même ordre.
    • Number : on renvoietrue uniquement si les deux opérandes ont la même valeur.+0 et-0 sont considérés comme la même valeur. Si au moins un des opérandes vautNaN, on renvoiefalse.
    • Boolean : on renvoietrue uniquement si les deux opérandes valent tous les deuxtrue ou s'ils valent tous les deuxfalse.

La différence fondamentale entre cet opérateur etl'opérateur d'égalité stricte (===) est que ce dernier n'opère pas de conversion de type. L'opérateur d'égalité stricte considère toujours que deux valeurs de types différents sont différentes.

Exemples

Comparaison sans conversion de types

js
1 == 1; // true"coucou" == "coucou"; // true

Comparaison avec conversion de types

js
"1" == 1; // true1 == "1"; // true0 == false; // true0 == null; // false0 == undefined; // false0 == !!null; // true, voir la documentation pour !!0 == !!undefined; // true, voir la documentation pour !!null == undefined; // trueconst nombre1 = new Number(3);const nombre2 = new Number(3);nombre1 == 3; // truenombre1 == nombre2; // false

Comparaison d'objets

js
const objet1 = { clé: "valeur" };const objet2 = { clé: "valeur" };objet1 == objet2; // falseobjet2 == objet2; // true

Comparaison entre des chaînes de caractères et des objets String

On notera que les chaînes de caractères construites avecnew String() sont des objets. Si on compare une telle valeur avec une chaîne de caractères "primitives", l'objetString sera converti en une chaîne de caractères et les contenus de ces chaînes seront comparés. Toutefois, si les deux opérandes sont des objetsString, ils seront comparés comme tels et devront référencer le même objet pour être considérés égaux :

js
const string1 = "coucou";const string2 = String("coucou");const string3 = new String("coucou");const string4 = new String("coucou");console.log(string1 == string2); // trueconsole.log(string1 == string3); // trueconsole.log(string2 == string3); // trueconsole.log(string3 == string4); // falseconsole.log(string4 == string4); // true

Comparaison entre les dates et les chaînes de caractères

js
const d = new Date("December 17, 1995 03:24:00");const s = d.toString(); // par exemple : "Sun Dec 17 1995 03:24:00 GMT-0800 (Pacific Standard Time)"console.log(d == s); //true

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-equality-operators

Compatibilité des navigateurs

Voir aussi

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2025 Movatter.jp