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

