JavaScript. Подробное руководство, 6-е издание (Флэнаган) - страница 40


>а == 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», но они не имеют других полезных методов. Несмотря на простоту прикладного интерфейса, в языке имеется три важных логических оператора.