Boolean
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'objet Boolean
est une enveloppe objet pour représenter une valeur booléenne.
Description
La valeur passée en premier paramètre est, si nécessaire, convertie en valeur booléenne. Si la valeur est omise ou est 0
, -0
, null
, false
, NaN
, undefined
ou une chaîne de caractères vide (""
), l'objet a une valeur initiale de false
(faux). Toutes les autres valeurs, y compris n'importe quel objet, un tableau vide ([]
), ou une chaîne de caractères "false"
, créent un objet avec une valeur initiale de true
(vrai).
Il ne faut pas confondre les valeurs primitives booléennes true
et false
avec les valeurs true
et false
d'un objet Boolean
.
Tout objet dont la valeur n'est ni undefined
ni null
, incluant un objet Boolean
dont la valeur est fausse, est évalué à true
lorsqu'il est utilisé dans une instruction conditionnelle. Par exemple, la condition de l'instruction if
dans le code suivant est validée, car l'expression x
est évaluée à true
:
var x = new Boolean(false);
if (x) {
// ce code est exécuté
}
Ce comportement ne s'applique pas aux valeurs primitives booléennes. Par exemple, dans le code suivant, la condition est évaluée à false
:
var x = false;
if (x) {
// ce code n'est pas exécuté
}
Il ne faut pas utiliser un objet Boolean
pour convertir une valeur non-booléenne en une valeur booléenne. On utilisera plutôt Boolean
comme une fonction (sans l'opérateur new
) ou alors la double négation :
var x = Boolean(expression); // conseillé
var x = !!expression; // une autre méthode
var x = new Boolean(expression); // à ne pas utiliser
Si vous spécifiez un objet quelconque, incluant un objet booléen qui vaut false
, le nouvel objet Boolean
vaudra true
.
var monFalse = new Boolean(false); // valeur initiale à false
var g = Boolean(monFalse); // valeur initiale à true
var maChaine = new String("Hello"); // un objet String
var s = Boolean(maChaine); // valeur initiale à true
Il ne faut pas utiliser un objet Boolean
à la place d'une valeur primitive booléenne.
Note :
Lorsque la propriété historique, non-standard, document.all
est utilisée comme argument, le constructeur Boolean
renvoie un objet booléen faux. Cette propriété étant non-standard, son utilisation est déconseillée.
Lorsqu'on utilise l'opérateur ==
afin de comparer faiblement un objet avec une valeur primitive booléenne, il est préférable de comprendre clairement ce qui est comparé. Par exemple :
if ([]) {
console.log("[] est équivalent à vrai");
// affiche "[] est équivalent à vrai" dans la console
}
if ([] == false) {
console.log("[] == false");
// affiche "[] == false"
}
En effet, on a bien [] == false
bien que []
est équivalent à vrai. La comparaison [] == false
compare la valeur de []
avec false
. Or, pour obtenir la valeur de []
, le moteur JavaScript appelle [].toString()
dont le résultat vaut ""
, et c'est cette chaîne de caractères qui est comparée avec false
. Autrement dit, [] == false
est équivalent à "" == false
. Avec ""
qui est équivalent à faux, on a donc le résultat observé.
Constructeur
Boolean()
-
Crée un nouvel objet
Boolean
.
Méthodes des instances
Boolean.prototype.toString()
-
Renvoie 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()
-
Renvoie la valeur primitive de l'objet
Boolean
. Il s'agit d'une surcharge de la méthodeObject.prototype.valueOf()
.
Exemples
Créer des objets Boolean
dont la valeur initiale est false
var bSansParam = new Boolean();
var bZero = new Boolean(0);
var bNull = new Boolean(null);
var bChaineVide = new Boolean("");
var bfalse = new Boolean(false);
Créer des objets Boolean
dont la valeur initiale est true
var bTrue = new Boolean(true);
var bChaineTrue = new Boolean("true");
var bChaineFalse = new Boolean("false");
var bSuLin = new Boolean("Su Lin");
var bArrayProto = new Boolean([]);
var bObjProto = new Boolean({});
Spécifications
Specification |
---|
ECMAScript Language Specification # sec-boolean-objects |
Compatibilité des navigateurs
BCD tables only load in the browser