Boolean
=======

Объект **`Boolean`** представляет значения истинности: `true` или `false`.

Описание
--------

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

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

Любой объект, чьё значение не является равным `undefined` или `null`, включая сам объект `Boolean` со значением, равным `false`, вычисляется в `true` при передаче его в условное выражение. Например, условие в следующей инструкции `if` вычисляется в `true`:


```js
var x = new Boolean(false);
if (x) {
  // этот код будет выполнен
}
```


Это поведение не применяется к примитивам логического типа. Например, условие в следующей инструкции `if` вычисляется в `false`:


```js
var x = false;
if (x) {
  // этот код не будет выполнен
}
```


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


```js
var x = Boolean(expression); // предпочтительно
var x = new Boolean(expression); // не используйте
```


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


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


Не используйте объект `Boolean` вместо примитива логического типа.

Конструктор
-----------

`Boolean()` (en-US)

Создаёт новый объект `Boolean`.

Свойства экземпляра
-------------------

Эти свойства определены в `Boolean.prototype` и есть у всех экземпляров `Boolean`.

`Boolean.prototype.constructor`

Функция-конструктор, создающая экземпляр объекта. Для экземпляров `Boolean` начальным значением является конструктор `Boolean` (en-US).

Методы экземпляра
-----------------

`Boolean.prototype.toString()`

Возвращает строку `true` или `false` в зависимости от значения объекта. Переопределяет метод `Object.prototype.toString()`.

`Boolean.prototype.valueOf()`

Возвращает примитивное значение объекта `Boolean`. Переопределяет метод `Object.prototype.valueOf()`.

Примеры
-------

### Создание объектов `Boolean` с начальным значением равным `false`


```js
const bNoParam = new Boolean();
const bZero = new Boolean(0);
const bNull = new Boolean(null);
const bEmptyString = new Boolean("");
const bfalse = new Boolean(false);
```

### Создание объектов `Boolean` с начальным значением равным `true`


```js
const btrue = new Boolean(true);
const btrueString = new Boolean("true");
const bfalseString = new Boolean("false");
const bSuLin = new Boolean("Su Lin");
const bArrayProto = new Boolean([]);
const bObjProto = new Boolean({});
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-boolean-objects |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* Boolean
* Примитивные значения булева типа
* Логический тип данных в Википедии