--- title: Boolean slug: Web/JavaScript/Reference/Global_Objects/Boolean tags: - Boolean - Constructor - JavaScript translation_of: Web/JavaScript/Reference/Global_Objects/Boolean --- <div>{{JSRef}}</div> <p>Das <strong><code>Boolean</code></strong> Objekt ist ein Objekt-Wrapper für einen booleschen Wert.</p> <h2 id="Syntax" name="Syntax">Syntax</h2> <pre class="syntaxbox"><code>new Boolean([<var>value</var>])</code></pre> <h3 id="Parameters" name="Parameters">Parameter</h3> <dl> <dt><code>value</code></dt> <dd>Optional. Der Anfangswert des <code>Boolean</code>-Objektes.</dd> </dl> <h2 id="Description" name="Description">Beschreibung</h2> <p>Der als erster Parameter übergebene Wert wird, wenn nötig, in einen booleschen Wert umgewandelt. Wird der Wert ausgelassen oder ist <code>0</code>, <code>-0</code>, {{jsxref("null")}}, <code>false</code>, {{jsxref("NaN")}}, {{jsxref("undefined")}} oder der leere String (<code>""</code>), so besitzt das Objekt den Initialwert <code>false</code>. Alle anderen Werte, einschließlich eines Objektes oder des Strings <code>"false"</code>, erzeugen ein Objekt mit dem Initialwert <code>true</code>.</p> <p>Die Werte <code>true </code>und <code>false </code>des <code>Boolean</code>-Objektes sind nicht zu verwechseln mit den primitiven Booleanwerten <code>true </code>und <code>false.</code></p> <p>Jedes Objekt, dessen Wert nicht {{jsxref("undefined")}} oder {{jsxref("null")}} entspricht, einschließlich eines <code>Boolean-</code>Objektes, dessen Wert <code>false</code> ist, wird bei der Übergabe an eine Bedingung als <code>true</code> gewertet. Beispielsweise wird das folgende {{jsxref("Statements/if...else", "if")}} Konstrukt als <code>true</code> ausgewertet:</p> <pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> x <span class="operator token">=</span> <span class="keyword token">new</span> <span class="class-name token">Boolean</span><span class="punctuation token">(</span><span class="string token">"false"</span><span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="keyword token">if</span> <span class="punctuation token">(</span>x<span class="punctuation token">)</span> <span class="punctuation token">{</span> <span class="comment token">// this code is executed</span> <span class="punctuation token">}</span> </code></pre> <p>Dieses Verhalten trifft nicht auf primitive Boolwerte zu. Beispielsweise ergibt das folgende {{jsxref("Statements/if...else", "if")}} Konstrukt <code>false</code>:</p> <pre class="brush: js">x = false; if (x) { // this code is not executed } </pre> <p>Ein <code>Boolean</code>-Objekt sollte nicht genutzt werden um einen nicht-booleschenWert in einen booleschen Wert umzuwandeln. In diesem Fall wäre es besser, den Boolean als Funktion zu verwenden:</p> <pre class="brush: js">x = Boolean(expression); // preferred x = new Boolean(expression); // don't use </pre> <p>Wird ein Objekt, einschließlich eines <code>Boolean</code>-Objektes dessen Wert <code>false</code> ist, als Anfangsparameter an das <code>Boolean-</code>Objekt übergeben, so hat das neue <code>Boolean</code>-Objekt den Wert <code>true</code>.</p> <pre class="brush: js">myFalse = new Boolean(false); // initialer Wert von false g = Boolean(myFalse); // initialer Wert von true myString = new String('Hello'); // string objekt s = Boolean(myString); // initialer Wert von true </pre> <p>Ein <code>Boolean</code>-Objekt darf nicht anstelle eines primitiven <code>Boolean-wertes </code>verwendet werden.</p> <div class="note"> <p><strong>Hinweis:</strong> Wenn die nicht standardisierte Eigenschaft <code><a href="/de/docs/Web/API/Document#Properties">document.all</a></code> als Argument für den Konstruktor benutzt wird, ist das Resultat ein <code>Boolean</code> Objekt mit dem Wert <code>false</code>. Diese Eigenschaft ist veraltet und nicht standardisierte und darf nicht eingesetzt werden.</p> </div> <h2 id="Properties" name="Properties">Eigenschaften</h2> <dl> <dt><code>Boolean.length</code></dt> <dd>Längen-Eingeschaft, die den Wert 1 hat.</dd> <dt>{{jsxref("Boolean.prototype")}}</dt> <dd>Repräsentiert den Prototypen für den <code>Boolean</code> Konstruktor</dd> </dl> <h2 id="Methods" name="Methods">Methoden</h2> <p>Das globale Objekt <code>Boolean</code> enthält zwar keine eigenen Methoden, erbt jedoch einige seiner Methoden durch die Prototypenkette:</p> <h2 id="Boolean_instances" name="Boolean_instances"><code>Boolean</code> Instanzen</h2> <p>Alle Instanzen von <code>Boolean</code> erben von {{jsxref("Boolean.prototype")}}. Wie bei allen Konstruktoren diktiert das Prototyp-Objekt die geerbten Eigenschaften und Methoden der Child-Elemente.</p> <h3 id="Eigenschaften">Eigenschaften</h3> <div>{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/Boolean/prototype', 'Eigenschaften')}}</div> <h3 id="Methoden">Methoden</h3> <div>{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/Boolean/prototype', 'Methoden')}}</div> <h2 id="Examples" name="Examples">Beispiele</h2> <h3 id="Example:_Creating_Boolean_objects_with_an_initial_value_of_false" name="Example:_Creating_Boolean_objects_with_an_initial_value_of_false">Erstellung eines <code>Boolean</code> Objektes mit dem Anfangswert <code>false</code></h3> <pre class="brush: js">var bNoParam = new Boolean(); var bZero = new Boolean(0); var bNull = new Boolean(null); var bEmptyString = new Boolean(''); var bfalse = new Boolean(false); </pre> <h3 id="Example:_Creating_Boolean_objects_with_an_initial_value_of_true" name="Example:_Creating_Boolean_objects_with_an_initial_value_of_true">Erstellung eines <code>Boolean</code> Objektes mit dem Anfangswert <code>true</code></h3> <pre class="brush: js">var btrue = new Boolean(true); var btrueString = new Boolean('true'); var bfalseString = new Boolean('false'); var bSuLin = new Boolean('Su Lin'); var bArrayProto = new Boolean([]); var bObjProto = new Boolean({}); </pre> <h2 id="Spezifikationen">Spezifikationen</h2> <table class="standard-table"> <tbody> <tr> <th scope="col">Spezifikation</th> <th scope="col">Status</th> <th scope="col">Kommentar</th> </tr> <tr> <td>{{SpecName('ES1')}}</td> <td>{{Spec2('ES1')}}</td> <td>Ursprüngliche Definition. Implementiert in JavaScript 1.0.</td> </tr> <tr> <td>{{SpecName('ES5.1', '#sec-15.6', 'Boolean')}}</td> <td>{{Spec2('ES5.1')}}</td> <td> </td> </tr> <tr> <td>{{SpecName('ES6', '#sec-boolean-objects', 'Boolean')}}</td> <td>{{Spec2('ES6')}}</td> <td> </td> </tr> <tr> <td>{{SpecName('ESDraft', '#sec-boolean-objects', 'Boolean')}}</td> <td>{{Spec2('ESDraft')}}</td> <td> </td> </tr> </tbody> </table> <h2 id="Browserkompatibilität">Browserkompatibilität</h2> <div> <p>{{Compat("javascript.builtins.Boolean")}}</p> </div> <h2 id="See_also" name="See_also">Siehe auch</h2> <ul> <li>{{jsxref("Boolean.prototype")}}</li> <li>{{Glossary("Boolean")}}</li> <li><a href="https://de.wikipedia.org/wiki/Boolesche_Variable">Boolesche Variablen (Wikipedia)</a></li> </ul>