Книга: JavaScript. Подробное руководство, 6-е издание
3.3. Логические значения
3.3. Логические значения
Логическое значение говорит об истинности или ложности чего-то. Логический тип данных имеет только два допустимых логических значения. Эти два значения представлены литералами true
и false
.
Логические значения обычно представляют собой результат операций сравнения, выполняемых в JavaScript-программах. Например:
а == 4
Это выражение проверяет, равно ли значение переменной а числу 4. Если да, результатом этого сравнения будет логическое значение true
. Если значение переменной а не равно 4, результатом сравнения будет false
.
Логические значения обычно используются в управляющих конструкциях JavaScript. Например, инструкция if/else
в JavaScript выполняет одно действие, если логическое значение равно true
, и другое действие, если false
. Обычно сравнение, создающее логическое значение, непосредственно объединяется с инструкцией, в которой оно используется. Результат выглядит так:
if (а == 4)
b = b + 1;
else
а = а + 1:
Здесь выполняется проверка равенства значения переменной а числу 4. Если равно, к значению переменной b добавляется 1; в противном случае число 1 добавляется к значению переменной а.
Как будет говориться в разделе 3.8, любое значение в языке JavaScript может быть преобразовано в логическое значение. Следующие значения в результате такого преобразования дают логическое значение (и затем работают как) false
:
undefined
null
0
-0
NaN
// пустая строка
Все остальные значения, включая все объекты (и массивы), при преобразовании дают в результате значение (и работают как) true
. Значениеfalse
и шесть значений, которые при преобразовании приводятся к этому значению, иногда называют ложными, а все остальные - истинными. В любом контексте, когда интерпретатор JavaScript ожидает получить логическое значение, ложные значения интерпретируются как false
, а истинные значения - как true
.
В качестве примера предположим, что переменная о
может хранить объект или значение null
. В этом случае можно явно проверить значение переменной о на неравенство значению null, как показано ниже:
if (о !== null) ...
Оператор «не равно» !==
сравнит переменную о со значением null
и вернет в результате true
или false
. Однако вы можете опустить оператор сравнения и положиться на тот факт, что null
является ложным значением, а объект - истинным:
if (о) ...
В первом случае тело инструкции if
будет выполнено, только если значение переменной о не равно null
. Во втором - ставится менее жесткое условие: тело инструкции if
будет выполнено, только если о не содержит false
или другое ложное значение (такое как null
или undefined
). Какая инструкция if
больше подходит для вашей программы, зависит от того, какие значения могут присваиваться переменной о
. Если в программе необходимо отличать значение null
от 0
и ""
, то следует использовать явную операцию сравнения.
Логические значения имеют метод toString()
, который можно использовать для преобразования этих значений в строки «true» или «false», но они не имеют других полезных методов. Несмотря на простоту прикладного интерфейса, в языке имеется три важных логических оператора.
Оператор &&
выполняет логическую операцию И. Он возвращает истинное значение, только если оба операнда истинны - в противном случае он возвращает ложное значение. Оператор ||
выполняет логическую операцию ИЛИ: он возвращает истинное значение, если хотя бы один (или оба) из операндов является истинным, и ложное значение - если оба операнда являются ложными. Наконец, унарный оператор !
выполняет логическую операцию НЕ: он возвращает значение true
для ложного операнда и false
- для истинного. Например:
if ((х == 0 && у == 0) И !(z == 0)) {
// х и у содержат значение 0 или z не равна нулю
}
Полное описание этих операторов приводится в разделе 4.10.
- 1. Пустые значения (Empty-значения)
- 2. Неопределенные значения (Null-значения)
- 3. Null-значения и общее правило вычисления выражений
- 4. Null-значения и логические операции
- 5. Null-значения и проверка условий
- 4.4. Логические элементы и синтез логических схем
- Логические элементы
- Функции как значения
- Предикаты: логические значения
- Логические значения XPath