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