Baseline Widely available
Boolean
-Werte können einen von zwei Werten annehmen: true
oder false
, die den Wahrheitswert eines logischen Ausdrucks darstellen.
Boolean-Werte werden typischerweise von Relationalen Operatoren, Gleichheitsoperatoren und logischem NOT (!
) erzeugt. Sie können auch durch Funktionen erzeugt werden, die Bedingungen darstellen, wie Array.isArray()
. Beachten Sie, dass binäre logische Operatoren wie &&
und ||
die Werte der Operanden zurückgeben, die möglicherweise keine boolean Werte sind.
Boolean-Werte werden typischerweise in Bedingungsprüfungen verwendet, wie zum Beispiel die Bedingung für if...else
- und while
-Anweisungen, den trinitischen Operator (? :
), oder den prädikatsbezogenen Rückgabewert von Array.prototype.filter()
.
Es ist selten notwendig, etwas explizit in einen boolean Wert zu konvertieren, da JavaScript dies automatisch in boolean Kontexten tut. Sie können also jeden Wert verwenden, als wäre er ein Boolean, basierend auf seiner Wahrhaftigkeit. Es wird empfohlen, if (condition)
und if (!condition)
anstelle von if (condition === true)
oder if (condition === false)
in Ihrem eigenen Code zu verwenden, um diese Konvention zu nutzen. Dennoch kann es hilfreich sein, sicherzustellen, dass Werte, die Bedingungen darstellen, immer boolean sind, um die Absicht Ihres Codes zu verdeutlichen.
// Do this:
// This always returns a boolean value
const isObject = (obj) => !!obj && typeof obj === "object";
// Or this:
const isObject = (obj) => Boolean(obj) && typeof obj === "object";
// Or this:
const isObject = (obj) => obj !== null && typeof obj === "object";
// Instead of this:
// This may return falsy values that are not equal to false
const isObject = (obj) => obj && typeof obj === "object";
Primitive Boolean-Werte und Boolean-Objekte
Um nicht-Boolean-Werte in Boolean umzuwandeln, verwenden Sie Boolean
als Funktion oder den doppelten NOT Operator. Verwenden Sie nicht den Boolean()
-Konstruktor mit new
.
const good = Boolean(expression);
const good2 = !!expression;
const bad = new Boolean(expression); // don't use this!
Der Grund dafür ist, dass alle Objekte, einschlieÃlich eines Boolean
-Objekts, dessen wrapped Wert false
ist, truthy sind und in Bedingungen zu true
ausgewertet werden. (Siehe auch den Abschnitt Boolean-Koerzierung unten.)
if (new Boolean(true)) {
console.log("This log is printed.");
}
if (new Boolean(false)) {
console.log("This log is ALSO printed.");
}
const myFalse = new Boolean(false); // myFalse is a Boolean object (not the primitive value false)
const g = Boolean(myFalse); // g is true
const myString = new String("Hello"); // myString is a String object
const s = Boolean(myString); // s is true
Warnung: Sie sollten selten den Boolean
-Konstruktor verwenden.
Viele eingebaute Operationen, die Booleans erwarten, koerzieren ihre Argumente zuerst zu Booleans. Die Operation kann wie folgt zusammengefasst werden:
undefined
wird zu false
.null
wird zu false
.0
, -0
und NaN
werden zu false
, andere Zahlen zu true
.0n
wird zu false
, andere BigInts zu true
.""
wird zu false
, andere Strings zu true
.true
.true
.Hinweis: Ein veraltetes Verhalten führt dazu, dass document.all
false
zurückgibt, wenn es als Boolean verwendet wird, obwohl es ein Objekt ist. Diese Eigenschaft ist veraltet und nicht standardisiert und sollte nicht verwendet werden.
Hinweis: Anders als bei anderen Typumwandlungen wie String-Koerzierung oder Zahlen-Koerzierung versucht die boolean Koerzierung nicht, Objekte in Primitive umzuwandeln, indem Benutzermethoden aufgerufen werden.
Mit anderen Worten, es gibt nur eine Handvoll Werte, die zu false
koerziert werden â diese werden falsy genannt. Alle anderen Werte werden truthy genannt. Die Wahrhaftigkeit eines Wertes ist wichtig, wenn er mit logischen Operatoren, in Bedingungen oder in jedem boolean Kontext verwendet wird.
Es gibt zwei Möglichkeiten, denselben Effekt in JavaScript zu erreichen.
!!x
negiert x
zweimal, was x
unter Verwendung desselben Algorithmus wie oben in einen boolean umwandelt.Boolean()
Funktion: Boolean(x)
verwendet denselben Algorithmus wie oben, um x
zu konvertieren.Beachten Sie, dass Wahrhaftigkeit nicht dasselbe ist wie lockere Gleichheit zu true
oder false
.
if ([]) {
console.log("[] is truthy");
}
if ([] == false) {
console.log("[] == false");
}
// [] is truthy
// [] == false
[]
ist truthy, aber auch locker gleich false
. Es ist truthy, weil alle Objekte truthy sind. Aber wenn man es mit false
vergleicht, das ein Primitive ist, wird []
auch in ein Primitive umgewandelt, was ""
über Array.prototype.toString()
ist. Beim Vergleichen von Strings und Booleans werden beide in Zahlen umgewandelt, und sie werden beide 0
, sodass [] == false
true
ist. Im Allgemeinen unterscheiden sich Falsizität und == false
in den folgenden Fällen:
NaN
, undefined
und null
sind falsy, aber nicht locker gleich false
."0"
(und andere String-Literale, die nicht ""
sind, aber in 0 umgewandelt werden) sind truthy, aber locker gleich false
.false
sein.Truthy-Werte sind noch unwahrscheinlicher, locker gleich true
zu sein. Alle Werte sind entweder truthy oder falsy, aber die meisten Werte sind weder locker gleich true
noch false
.
Boolean()
Erstellt Boolean
-Objekte. Beim Aufruf als Funktion gibt es primitive Werte des Typs Boolean zurück.
Diese Eigenschaften sind auf Boolean.prototype
definiert und werden von allen Boolean
-Instanzen geteilt.
Boolean.prototype.constructor
Die Konstruktorfunktion, die das Instanzobjekt erstellt hat. Bei Boolean
-Instanzen ist der Ausgangswert der Boolean
-Konstruktor.
Boolean.prototype.toString()
Gibt einen String von entweder true
oder false
zurück, abhängig vom Wert des Objekts. Ãberschreibt die Object.prototype.toString()
-Methode.
Boolean.prototype.valueOf()
Gibt den primitiven Wert des Boolean
-Objekts zurück. Ãberschreibt die Object.prototype.valueOf()
-Methode.
const bNoParam = Boolean();
const bZero = Boolean(0);
const bNull = Boolean(null);
const bEmptyString = Boolean("");
const bfalse = Boolean(false);
Erstellen von wahren Werten
const btrue = Boolean(true);
const btrueString = Boolean("true");
const bfalseString = Boolean("false");
const bSuLin = Boolean("Su Lin");
const bArrayProto = Boolean([]);
const bObjProto = Boolean({});
Spezifikationen Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4