Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Boolean
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
Boolean-Werte können einen von zwei Werten annehmen:true oderfalse, die den Wahrheitswert eines logischen Ausdrucks darstellen.
In diesem Artikel
Beschreibung
Boolean-Werte werden typischerweise vonRelationalen Operatoren,Gleichheitsoperatoren undlogischem NOT (!) erzeugt. Sie können auch durch Funktionen erzeugt werden, die Bedingungen darstellen, wieArray.isArray(). Beachten Sie, dassbinä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ürif...else- undwhile-Anweisungen, dentrinitischen Operator (? :), oder den prädikatsbezogenen Rückgabewert vonArray.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 seinerWahrhaftigkeit. Es wird empfohlen,if (condition) undif (!condition) anstelle vonif (condition === true) oderif (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 valueconst 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 falseconst isObject = (obj) => obj && typeof obj === "object";Primitive Boolean-Werte und Boolean-Objekte
Um nicht-Boolean-Werte in Boolean umzuwandeln, verwenden SieBoolean als Funktion oder dendoppelten NOT Operator. Verwenden Sie nicht denBoolean()-Konstruktor mitnew.
const good = Boolean(expression);const good2 = !!expression;const bad = new Boolean(expression); // don't use this!Der Grund dafür ist, dassalle Objekte, einschließlich einesBoolean-Objekts, dessen wrapped Wertfalse ist,truthy sind und in Bedingungen zutrue ausgewertet werden. (Siehe auch den AbschnittBoolean-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 trueconst myString = new String("Hello"); // myString is a String objectconst s = Boolean(myString); // s is trueWarnung:Sie sollten selten denBoolean-Konstruktor verwenden.
Boolean-Koerzierung
Viele eingebaute Operationen, die Booleans erwarten, koerzieren ihre Argumente zuerst zu Booleans.Die Operation kann wie folgt zusammengefasst werden:
- Booleans werden unverändert zurückgegeben.
undefinedwird zufalse.nullwird zufalse.0,-0undNaNwerden zufalse, andere Zahlen zutrue.0nwird zufalse, andereBigInts zutrue.- Der leere String
""wird zufalse, andere Strings zutrue. - Symbole werden zu
true. - Alle Objekte werden zu
true.
Hinweis:Ein veraltetes Verhalten führt dazu, dassdocument.allfalse 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 wieString-Koerzierung oderZahlen-Koerzierung versucht die boolean Koerzierung nicht,Objekte in Primitive umzuwandeln, indem Benutzermethoden aufgerufen werden.
Mit anderen Worten, es gibt nur eine Handvoll Werte, die zufalse koerziert werden — diese werdenfalsy genannt. Alle anderen Werte werdentruthy 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.
- Doppeltes NOT:
!!xnegiertxzweimal, wasxunter Verwendung desselben Algorithmus wie oben in einen boolean umwandelt. - Die
Boolean()Funktion:Boolean(x)verwendet denselben Algorithmus wie oben, umxzu konvertieren.
Beachten Sie, dass Wahrhaftigkeit nicht dasselbe ist wielockere Gleichheit zutrue oderfalse.
if ([]) { console.log("[] is truthy");}if ([] == false) { console.log("[] == false");}// [] is truthy// [] == false[] ist truthy, aber auch locker gleichfalse. Es ist truthy, weil alle Objekte truthy sind. Aber wenn man es mitfalse vergleicht, das ein Primitive ist, wird[] auch in ein Primitive umgewandelt, was"" überArray.prototype.toString() ist. Beim Vergleichen von Strings und Booleans werden beide inZahlen umgewandelt, und sie werden beide0, sodass[] == falsetrue ist. Im Allgemeinen unterscheiden sich Falsizität und== false in den folgenden Fällen:
NaN,undefinedundnullsind falsy, aber nicht locker gleichfalse."0"(und andere String-Literale, die nicht""sind, aberin 0 umgewandelt werden) sind truthy, aber locker gleichfalse.- Objekte sind immer truthy, aber ihre Primitivdarstellung kann locker gleich
falsesein.
Truthy-Werte sind noch unwahrscheinlicher, locker gleichtrue zu sein. Alle Werte sind entweder truthy oder falsy, aber die meisten Werte sind weder locker gleichtrue nochfalse.
Konstruktor
Boolean()Erstellt
Boolean-Objekte. Beim Aufruf als Funktion gibt es primitive Werte des Typs Boolean zurück.
Instanzeigenschaften
Diese Eigenschaften sind aufBoolean.prototype definiert und werden von allenBoolean-Instanzen geteilt.
Boolean.prototype.constructorDie Konstruktorfunktion, die das Instanzobjekt erstellt hat. Bei
Boolean-Instanzen ist der Ausgangswert derBoolean-Konstruktor.
Instanzmethoden
Boolean.prototype.toString()Gibt einen String von entweder
trueoderfalsezurück, abhängig vom Wert des Objekts. Überschreibt dieObject.prototype.toString()-Methode.Boolean.prototype.valueOf()Gibt den primitiven Wert des
Boolean-Objekts zurück. Überschreibt dieObject.prototype.valueOf()-Methode.
Beispiele
>Erstellen von falschen Werten
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
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-boolean-objects> |
Browser-Kompatibilität
Siehe auch
- Boolean
- Primitive Boolean-Werte
- Boolean-Datentyp auf Wikipedia