JavaScript булев тип (boolean)
Логический (булев) тип данных boolean имеет только два значения, которые также являются ключевыми словами: true
(истина) и false
(ложь). Булево значение говорит об истинности или ложности чего-либо.
Булевы значения обычно являются результатом операций сравнения, но могут быть присвоены и явным образом:
let open = true;
let num = 7;
alert(num == 7); // true
Выражение в скобках проверяет, равно ли значение переменной num
числу 7
. Если да, результатом этого сравнения будет булево значение true
. Если значение переменной num
не равно 7
, результатом сравнения будет — false
.
В большинстве случаев булевы значения используются в таких инструкциях, где результат выполнения какой-то части кода зависит от истинности или ложности вычисляемого выражения. Например, инструкция if/else
выполняет одно действие, если результатом вычисления выражения является значение true
, и другое действие, если результатом вычисления выражения является значение false
:
let open = true;
if (open) {
alert("Дверь открыта!");
}
else {
alert("Дверь закрыта!");
}
open = false;
if (open) {
alert("Дверь открыта!");
}
else {
alert("Дверь закрыта!");
}
Булевы значения получаются не только в результатах сравнения — любое значение в JavaScript может быть преобразовано (явно или неявно) в булево значение. Следующие значения в результате преобразования дают значение false
:
undefined
;null
;0
;-0
;NaN
;"", '', ``
— пустая строка.
Все остальные значения при преобразовании дают в результате значение true
. Шесть значений, которые становятся false
при преобразовании в логическом контексте, называют ложными (falsy) значениями или ложноподобными, а все остальные — истинными. Таким образом, когда интерпретатор JavaScript ожидает булево значение, ложные значения работают подобно false
, а истинные — подобно true
:
let x = 7;
if(x) {
alert("Значение x преобразовано в true");
}
let y = 0;
if(y) {
alert("Не выполнится");
}
else {
alert("Значение y преобразовано в false");
}