Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
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.
Dans cet article
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.
// 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.
const good = Boolean(expression);const good2 = !!expression;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.)
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 trueAttention :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.
undefineddevientfalse.nulldevientfalse.0,-0etNaNdeviennentfalse; les autres nombres deviennenttrue.0ndevientfalse; les autresBigInts deviennenttrue.- La chaîne vide
""devientfalse; les autres chaînes de caractères deviennenttrue. - Symboles deviennent
true. - Tous les objets deviennent
true.
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 :
!!xfait la négation dexdeux fois, ce qui convertitxen booléen en utilisant le même algorithme que ci-dessus. - La fonction
Boolean():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.
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,undefinedetnullsont é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 objet
Boolean.
Propriétés d'instance
Ces propriétés sont définies surBoolean.prototype et partagées par toutes les instances deBoolean.
Boolean.prototype.constructorLa fonction constructeur qui a créé l'objet instance. Pour les instances de
Boolean, 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'objet
Boolean. Il s'agit d'une surcharge de la méthodeObject.prototype.valueOf().
Exemples
>Les valeursfalse
const bSansParam = Boolean();const bZero = Boolean(0);const bNull = Boolean(null);const bChaineVide = Boolean("");const bfalse = Boolean(false);Les valeurstrue
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
- L'entrée de glossaireBooléen
- Valeurs primitives booléennes
- Le type de données booléen sur Wikipédia