Page 112 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 112

let  х  =  3 ,   у;
       х  +=  у  =  6 * 5 / 2 ;
       11 расставим  круглые  скобки  вокруг  следующих  операций  согласно
       11  п р иоритету:
       1 1
       11  умножение  и  деление  (уровень  приоритета  - 14,  слева  направо) :
       1 1    х  +=  у   (6*5) /2
       11    х  +=  у  =  (30/2)
       11    х  +=  у  =  15
       11  присваивание  (уровень  приоритета  - 3,  справа  налево) :
       1 1    х  +  =  (  у  =  15)
       11    х  +=  1 5     (теперь  у  содержит  значение  1 5 )
       11    1 8            (теперь  х  содержит  значение  1 8 )
          Поначалу понять приоритет операторов может быть сложно, но потом это быстро
       становится второй натурой.


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

          Операторы сравнения, как и следует из их названия, используются для сравнения
       двух значений. Есть три типа оператора сравнения: строгое равенство, абстрактное
       (или свободное) равенство и сравнение. (Мы не рассматриваем неравенства как от­
       дельный тип: неравенство - это просто "не равенство'; даже при том что у него есть
       собственный оператор для удобства.)
          Новичкам  труднее  всего  понять  различие между строгим равенством  (strict
       equality) и абстрактным равенством (abstract equality). Начнем со строгого равен­
       ства, поскольку я рекомендую всегда предпочитать именно его. Два значения счи­
       таются строго равными,  если они ссылаются на один и тот же объект или имеют
       один и тот же тип и одно и то же значение (у базовых типов). Преимущество стро­
       гого равенства в том, что его правила очень просты и понятны, что делает его менее
       склонным к ошибкам и недоразумениям. Чтобы определить, строго ли равны значе­
       ния, используйте оператор === или его противоположность - оператор строгого не­
       равенства ( ! == ). Прежде чем мы рассмотрим несколько примеров, давайте обсудим
       оператор абстрактного равенства.
          Два значения считаются абстрактно равными, если они ссылаются на один и тот
       же объект (и то хорошо) или если они могут быть приведены к одному и тому же
       значению.  Именно эта вторая часть  вызывает так много неприятностей и недопо­
       нимания. Иногда это свойство полезно. Например, если вы захотите узнать, равны
       ли число  33  и строка  "3 3  ", то оператор абстрактного равенства скажет, что равны,
       но оператор строгого равенства скажет, что не равны (поскольку они имеют раз­
       ные типы). Хотя, на первый взгляд, абстрактное равенство может показаться более
       удобным, вы вместе с  этим удобством можете получить больше непредвиденного
       поведения. Поэтому я рекомендую заранее преобразовывать строки в числа; таким


                                                           Операторы сравнения   1 1 1
   107   108   109   110   111   112   113   114   115   116   117