---
title: Boolean
slug: Web/JavaScript/Reference/Global_Objects/Boolean
tags:
  - Boolean
  - Constructor
  - JavaScript
  - Reference
  - Référence(2)
translation_of: Web/JavaScript/Reference/Global_Objects/Boolean
---
<div>{{JSRef()}}</div>

<p>Объект <strong><code>Boolean</code></strong> является объектом-обёрткой над примитивом логического типа.</p>

<h2 id="Syntax" name="Syntax">Синтаксис</h2>

<pre class="syntaxbox"><code>new Boolean([<var>value</var>])</code></pre>

<h3 id="Parameters" name="Parameters">Параметры</h3>

<dl>
 <dt><code>value</code></dt>
 <dd>Необязательный параметр. Начальное значение объекта <code>Boolean</code>.</dd>
</dl>

<h2 id="Description" name="Description">Описание</h2>

<p>Значение, переданное первым параметром, при необходимости преобразуется в логическое значение. Если значение опущено или равно <code>0</code>, <code>-0</code>, {{jsxref("Global_Objects/null", "null")}}, <code>false</code>, {{jsxref("Global_Objects/NaN", "NaN")}}, {{jsxref("Global_Objects/undefined", "undefined")}} или пустой строке (<code>""</code>), объект имеет начальное значение, равное <code>false</code>. Все остальные значения, включая любые объекты или строку <code>"false"</code>, создают объект с начальным значением, равным <code>true</code>.</p>

<p>Не путайте примитивные значения <code>true</code> и <code>false</code> логического типа со значениями <code>true</code> и <code>false</code> объекта <code>Boolean</code>.</p>

<p>Любой объект, чьё значение не является равным {{jsxref("Global_Objects/undefined", "undefined")}} или {{jsxref("Global_Objects/null", "null")}}, включая сам объект <code>Boolean</code> со значением, равным <code>false</code>, вычисляется в <code>true</code> при передаче его в условное выражение. Например, условие в следующей инструкции {{jsxref("Statements/if...else", "if")}} вычисляется в <code>true</code>:</p>

<pre class="brush: js">var x = new Boolean(false);
if (x) {
  // этот код будет выполнен
}
</pre>

<p>Это поведение не применяется к примитивам логического типа. Например, условие в следующей инструкции {{jsxref("Statements/if...else", "if")}} вычисляется в <code>false </code>:</p>

<pre class="brush: js">var x = false;
if (x) {
  // этот код не будет выполнен
}
</pre>

<p>Не используйте объект <code>Boolean</code> для преобразования нелогического значения в логическое значение. Вместо этого используйте <code>Boolean</code> в качестве функции:</p>

<pre class="brush: js">var x = Boolean(expression);     // предпочтительно
var x = new Boolean(expression); // не используйте
</pre>

<p>Если вы определите любой объект, включая объект <code>Boolean</code> со значением <code>false</code>, в качестве начального значения объекта <code>Boolean</code>, новый объект <code>Boolean</code> будет иметь значение <code>true</code>.</p>

<pre class="brush: js">var myFalse = new Boolean(false);    // начальное значение равно false
var g = new Boolean(myFalse);        // начальное значение равно true
var myString = new String('Привет'); // строковый объект
var s = new Boolean(myString);       // начальное значение равно true
</pre>

<p>Не используйте объект <code>Boolean</code> вместо примитива логического типа.</p>

<h2 id="Properties" name="Properties">Свойства</h2>

<dl>
 <dt><code>Boolean.length</code></dt>
 <dd>Свойство <code>length</code> логического значения равно 1.</dd>
 <dt>{{jsxref("Boolean.prototype")}}</dt>
 <dd>Представляет прототип конструктора объекта <code>Boolean</code>.</dd>
</dl>

<p>{{jsOverrides("Function", "Properties", "prototype")}}</p>

<h2 id="Methods" name="Methods">Методы</h2>

<p>Глобальный объект <code>Boolean</code> не содержит собственных методов, однако, он наследует некоторые методы из цепочки прототипов:</p>

<div>{{jsOverrides("Function", "Methods")}}</div>

<h2 id="Boolean_instances" name="Boolean_instances">Экземпляры объекта <code>Boolean</code></h2>

<p>Все экземпляры объекта <code>Boolean</code> наследуются от {{jsxref("Boolean.prototype")}}. Как и все конструкторы, объект прототипа предоставляет экземплярам свойства и методы.</p>

<h3 id="Properties_2" name="Properties_2">Свойства</h3>

<div>{{page('/ru/docs/Web/JavaScript/Reference/Global_Objects/Boolean/prototype', 'Properties')}}</div>

<h3 id="Methods_2" name="Methods_2">Методы</h3>

<div>{{page('/ru/docs/Web/JavaScript/Reference/Global_Objects/Boolean/prototype', 'Methods')}}</div>

<h2 id="Examples" name="Examples">Примеры</h2>

<h3 id="Example:_Creating_Boolean_objects_with_an_initial_value_of_false" name="Example:_Creating_Boolean_objects_with_an_initial_value_of_false">Пример: создание объектов <code>Boolean</code> с начальным значением, равным <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">Пример: создание объектов <code>Boolean</code> с начальным значением, равным <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('Су Лин');
var bArrayProto = new Boolean([]);
var bObjProto = new Boolean({});
</pre>

<h2 id="Specifications" name="Specifications">Спецификации</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Спецификация</th>
   <th scope="col">Статус</th>
   <th scope="col">Комментарии</th>
  </tr>
  <tr>
   <td>ECMAScript 1-е издание.</td>
   <td>Стандарт</td>
   <td>Изначальное определение. Реализована в 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>
 </tbody>
</table>

<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2>

<p>{{Compat}}</p>

<h2 id="See_also" name="See_also">Смотрите также</h2>

<ul>
 <li>{{jsxref("Boolean.prototype")}}</li>
 <li>{{Glossary("Boolean")}}</li>
 <li><a href="https://ru.wikipedia.org/wiki/Логический_тип">Логический тип данных (Википедия)</a></li>
</ul>