---
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>