Page 119 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 119
Лоrи ч е ские операто р ы с н е nо rи ч ескими операндами
Если вы используете логические операнды, логические операторы всегда возвра
щают логические значения. В противном случае возвращаемое значение будет зави
сеть от типов операндов, как показано в табл. 5.5 и 5.6.
Таблица 5.5. Таблица истинности для оператора
AND (&&} с не логическими операндами
х у Х & & У
ложь ложь Х (ложь)
ложь истина х (ложь)
истина ложь У (ложь)
истина истина У (истина)
Таблица 5.6. Таблица истинности для оператора
OR ( 1 1 } с не логическими операндами
х у x 1 1 v
ложь ложь У (ложь)
ложь истина У (истина)
истина ложь У (истина)
истина истина У (истина)
Обратите внимание, что если вы преобразуете результат в логическое значение,
то он будет правильным согласно определениям логических операторов AND и OR.
Подобное поведение логических операторов допускает определенные весьма удоб
ные сокращения. Вот одно из достаточно наглядных.
const options = suppliedOptions 1 1 { name : " D e f ault"
Помните, что объекты (даже если они пусты) всегда считаются исти
p
l
ной. Таким образом, если s u pp i edO t i o n s - это объект, то o p t i o n s ссы
p
лается на s u p l i edOpti o n s . Если никаких параметров не предоставлено, то
suppliedOptions будет nu l или undefined, а переменная options получит некое
l
стандартное значение.
В случае оператора NOT нет никакого резонного способа возвратить нечто, кро
ме логического значения, поэтому оператор ( ! ) всегда возвращает логическое значе
ние для операнда любого типа. Если операнд истинный, он возвращает false, в про
тивном случае - true.
Усл о в н ы й оператор
У с ловный оператор - это единственный тройственный оператор (ternary)
JavaScript: он получает три операнда (все остальные получают один или два
1 1 8 Глава S . Выражения и операторы

