Книга: Выразительный JavaScript
Короткое вычисление логических операторов
Короткое вычисление логических операторов
Логические операторы &&
и ||
работают с величинами разных типов очень странным образом. Они преобразуют величину с левой стороны оператора в булевскую, чтобы понять, что делать дальше, но в зависимости от оператора и от результата этого преобразования, возвращают оригинальное значение либо левой, либо правой части.
К примеру, ||
вернёт значение с левой части, когда его можно преобразовать в true
– а иначе вернёт правую часть.
console.log(null || "user")
// ? user
console.log("Karl" || "user")
// ? Karl
Такая работа оператора ||
позволяет использовать его как откат к значению по умолчанию. Если вы дадите ему выражение, которое может вернуть пустое значение слева, то значение справа будет служить заменой на этот случай.
Оператор &&
работает сходным образом, но наоборот. Если величина слева преобразовывается в false
, он возвращает эту величину, а иначе – величину справа.
Ещё одно важное их свойство – выражение в правой части вычисляется только при необходимости. В случае true || X
не важно, чему равно X
. Даже если это какое-то ужасное выражение. Результат всегда true
и X
не вычисляется. Так же работает false && X
– X
просто игнорируется. Это называется коротким вычислением.
Оператор условия работает так же. Первое выражение всегда вычисляется, а из второго и третьего значения – только то, которое оказывается выбранным в результате.
- 4.4. Логические элементы и синтез логических схем
- Глава 2 Вычисление
- Практическая работа 47. Расчеты с использованием логических функций
- Использование операторов if для выбора вариантов
- Подробнее о психологических типах
- Листинг 4.4. (primes.с) Вычисление простых чисел в потоке
- Вычисление размера кэша
- Вычисление приоритетов и квантов времени
- Применение вложенных операторов from
- Операторы побитовых логических операций и сдвига
- Порядок выполнения операторов
- Диспетчер логических дисков