понедельник, 7 ноября 2016 г.

1.4 Логические значения

(Из книги "Говоря на языке JavaScript").
 
Логический (boolean) тип охватывает всего два значения:  true и false. К ним можно применять следующие операторы:
  • Бинарные логические операторы: && (и), || (или)
  • Префиксный оператор отрицания: ! (не)
  • Операторы сравнения:
    • Выяснение равенства: ===, !==, ==, !=
    • Упорядочивание: >, >=, <, <=

Истинное и ложное

Всегда, когда в JavaScript ожидается логическое значение  (например, в скобках после ключевого слова if), могут использоваться любые типы переменных. Все они могут рассматриваться как true или false. Следующие значения интерпретируются как false:
  • undefined, null
  • из логических: false
  • из числовых: 0, NaN
  • из строк: ''
Все остальные значения (включая все объекты!) рассматриваются как true. Значения, "играющие роль" false, называются ложными, а "играющие роль" true  - истинными. Конструктор Boolean(), вызванный как функция, превращает свой параметр в логическое значение. Вы можете использовать этот прием для выяснения того, как интерпретируется та или иная переменная с точки зрения истинности и ложности:
 
Boolean(undefined) // false
Boolean(0)         // false
Boolean(3)         // true
Boolean({})        // true
Boolean([])        // true

Бинарные логические операторы

Бинарные логические операторы в JavaScript являются "короткозамкнутыми". Это значит, что если первого операнда достаточно для вычисления всего выражения, то остальные не рассматриваются. Например, в следующих выражениях функция  foo() не сработает:
 
false && foo()
true  || foo()
 
Более того, бинарные логические операторы возвращают один из своих операндов, который может и не быть логическим. Проверка на истинность может использоваться для выбора между ними:
Оператор "и" (&&)
Если первый оператор ложен, он и возвращается. в противном случае возвращается последний:
 
NaN && 'abc' // Вернется NaN.
123 && 'abc' // Вернется 'abc'.
Оператор "или" (||)
Если оператор истинный, выражение возвращает его, в противном случае - последний:
 
'abc' || 123 // Вернется 'abc'.
'' || 123    // Вернется 123.

Операторы сравнения равенства

В JavaScript есть два вида сравнения:
  • Нормальное, или “мягкое,” (не)равенство: == и !=
  • Строгое (не)равенство: === и !==
Нормальное сравнение на равенство предполагает, что многие значения могут быть равными друг другу, например число 1 и строка "1" (см. Нормальное равенство (==, !=)), однако это чревато ошибками в программах. Поэтому рекомендуется всегда использовать строгое равенство.

Комментариев нет:

Отправить комментарий