Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Référence
  4. Objets natifs standards
  5. Boolean

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

Boolean

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.

Les valeursBoolean peuvent être l'une des deux valeurs :true oufalse, représentant la valeur de vérité d'une proposition logique.

Description

Les valeurs booléennes sont généralement produites par lesopérateurs relationnels, lesopérateurs d'égalité et l'opérateur logique NOT (!). Elles peuvent aussi être produites par des fonctions qui représentent des conditions, commeArray.isArray(). Notez que lesopérateurs logiques binaires tels que&& et|| retournent les valeurs des opérandes, qui peuvent ou non être des valeurs booléennes.

Les valeurs booléennes sont généralement utilisées dans des tests conditionnels, comme la condition des instructionsif...else etwhile, l'opérateur conditionnel (? :) ou la valeur de retour prédicat deArray.prototype.filter().

Vous aurez rarement besoin de convertir explicitement quelque chose en une valeur booléenne, car JavaScript le fait automatiquement dans les contextes booléens, vous pouvez donc utiliser n'importe quelle valeur comme si c'était un booléen, en fonction de sonéquivalent à vrai. Il est conseillé d'utiliserif (condition) etif (!condition) plutôt queif (condition === true) ouif (condition === false) dans votre code afin de profiter de cette convention. Cependant, veiller à ce que les valeurs représentant des conditions soient toujours des booléens peut aider à clarifier l'intention de votre code.

js
// Faites ceci :// Ça retourne toujours une valeur booléenneconst isObject = (obj) => !!obj && typeof obj === "object";// Ou ceci :const isObject = (obj) => Boolean(obj) && typeof obj === "object";// Ou ceci :const isObject = (obj) => obj !== null && typeof obj === "object";// Au lieu de ceci :// Cela peut retourner des valeurs falsy qui ne sont pas égales à falseconst isObject = (obj) => obj && typeof obj === "object";

Primitives booléennes et objetsBoolean

Pour convertir des valeurs non booléennes en booléen, utilisezBoolean comme fonction ou l'opérateurde double négation. N'utilisez pas le constructeurBoolean() avecnew.

js
const good = Boolean(expression);const good2 = !!expression;
js
const bad = new Boolean(expression); // n'utilisez pas ceci !

En effet, tous les objets, y compris un objetBoolean dont la valeur encapsulée estfalse, sontéquivalent à vrai et sont évalués àtrue dans des endroits comme les instructions conditionnelles. (Voir aussi la sectioncoercition booléenne ci‑dessous.)

js
if (new Boolean(true)) {  console.log("Ce journal est affiché.");}if (new Boolean(false)) {  console.log("Ce journal est AUSSI affiché.");}const myFalse = new Boolean(false); // myFalse est un objet Boolean (pas la valeur primitive false)const g = Boolean(myFalse); // g vaut trueconst myString = new String("Hello"); // myString est un objet Stringconst s = Boolean(myString); // s vaut true

Attention :Il est rarement nécessaire d'utiliserBoolean comme constructeur.

Coercition booléenne

De nombreuses opérations intégrées qui attendent des booléens convertissent d'abord leurs arguments en booléens.L'opération(angl.) peut être résumée ainsi :

  • Les booléens sont retournés tels quels.
  • undefined devientfalse.
  • null devientfalse.
  • 0,-0 etNaN deviennentfalse ; les autres nombres deviennenttrue.
  • 0n devientfalse ; les autresBigInts deviennenttrue.
  • La chaîne vide"" devientfalse ; les autres chaînes de caractères deviennenttrue.
  • Symboles deviennenttrue.
  • Tous les objets deviennenttrue.

Note :Un comportement historique fait quedocument.all retournefalse lorsqu'il est utilisé comme booléen, malgré le fait que c'est un objet. Cette propriété est historique et non standard et ne doit pas être utilisée.

Note :Contrairement à d'autres conversions de type comme laconversion en chaîne de caractères ou laconversion en nombre, la conversion booléenne n'essaie pas deconvertir les objets en valeurs primitives en appelant des méthodes définies par l'utilisateur·ice.

En d'autres termes, seules quelques valeurs sont converties enfalse — ce sont lesvaleurs équivalentes à faux. Toutes les autres valeurs sont desvaleurs équivalentes à vrai. L'équivalence à vrai d'une valeur est importante lorsqu'elle est utilisée avec des opérateurs logiques, des instructions conditionnelles ou tout contexte booléen.

Il existe deux façons d'obtenir le même effet en JavaScript.

  • Double négation :!!x fait la négation dex deux fois, ce qui convertitx en booléen en utilisant le même algorithme que ci-dessus.
  • La fonctionBoolean() :Boolean(x) utilise le même algorithme que ci-dessus pour convertirx.

Notez que l'équivalent à vrai n'est pas la même chose que d'êtrefaiblement égal àtrue oufalse.

js
if ([]) {  console.log("[] est équivalent à vrai");}if ([] == false) {  console.log("[] == false");}// [] est équivalent à vrai// [] == false

[] est équivalent à vrai, mais il est aussi faiblement égal àfalse. Il est équivalent à vrai, car tous les objets sont équivalents à vrai. Cependant, lors d'une comparaison avecfalse, qui est une valeur primitive,[] est aussi converti en une valeur primitive, qui est"" viaArray.prototype.toString(). Comparer des chaînes de caractères et des booléens fait que les deux sontconvertis en nombres, et ils deviennent tous deux0, donc[] == false vauttrue. En général, l'équivalence à faux et== false diffèrent dans les cas suivants :

  • NaN,undefined etnull sont équivalents à faux mais ne sont pas faiblement égaux àfalse.
  • "0" (et d'autres littéraux de chaîne de caractères qui ne sont pas"" maissont convertis en 0) est équivalent à vrai mais faiblement égal àfalse.
  • Les objets sont toujours équivalents à vrai, mais leur représentation primitive peut être faiblement égale àfalse.

Les valeurs équivalentes à vrai sont encore moins susceptibles d'être faiblement égales àtrue. Toutes les valeurs sont soit équivalentes à vrai, soit équivalentes à faux, mais la plupart des valeurs ne sont faiblement égales ni àtrue ni àfalse.

Constructeur

Boolean()

Crée un nouvel objetBoolean.

Propriétés d'instance

Ces propriétés sont définies surBoolean.prototype et partagées par toutes les instances deBoolean.

Boolean.prototype.constructor

La fonction constructeur qui a créé l'objet instance. Pour les instances deBoolean, la valeur initiale est le constructeurBoolean().

Méthodes d'instances

Boolean.prototype.toString()

Retourne une chaîne de caractères qui est"true" ou"false" selon la valeur de l'objet. Il s'agit d'une surcharge de la méthodeObject.prototype.toString().

Boolean.prototype.valueOf()

Retourne la valeur primitive de l'objetBoolean. Il s'agit d'une surcharge de la méthodeObject.prototype.valueOf().

Exemples

Les valeursfalse

js
const bSansParam = Boolean();const bZero = Boolean(0);const bNull = Boolean(null);const bChaineVide = Boolean("");const bfalse = Boolean(false);

Les valeurstrue

js
const btrue = Boolean(true);const bChaineTrue = Boolean("true");const bChaineFalse = Boolean("false");const bSuLin = Boolean("Su Lin");const bArrayProto = Boolean([]);const bObjProto = Boolean({});

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-boolean-objects

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-2026 Movatter.jp