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 .   Выражения и операторы
   114   115   116   117   118   119   120   121   122   123   124