aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/javascript/reference/global_objects/boolean/index.html
blob: 0d0978325bb5ca60f69a621ca9411fee1df4d044 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
---
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">Синтаксис</h2>

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

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

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

<h2 id="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">Свойства</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">Методы</h2>

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

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

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

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

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

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

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

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

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

<h3 id="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">Пример: создание объектов <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">Спецификации</h2>

{{Specifications}}

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

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

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

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