Page 111 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 111
Приоритет операторов
Вторая по важности концепция, необходимая для осознания того, как каждое вы
ражение возвращает значение, приоритет операторов, - это следующий жизненно
важный этап для понимания работы программ JavaScript.
Т е перь, рассмотрев арифметические операторы, давайте приостановим наше об
суждение набора операторов JavaScript и обсудим их приоритет. Если вы учились
в школе, то должны быть уже знакомы с понятием приоритета операторов, даже если
еще и не подозреваете об этом.
Помните, когда-то в младших классах вы решали такие задачи (заранее прошу
прощения у тех, кого раздражала арифметика).
8 + 2 + 3 х ( 4 х 2 - 1 )
Если ваш ответ - 25, вы правильно применили приоритет операторов. Вы знали,
что нужно начинать с круглых скобок, затем переходить к умножению и делению,
а завершать сложением и вычитанием.
Для принятия решения о том, как вычислить любое выражение (а не только
арифметическое), JavaScript использует подобный свод правил. Вы будете рады уз
нать, что в арифметических выражениях в JavaScript используется тот же порядок
операций, который вы изучали в младших классах школы, легко запоминаемый с по
мощью мнемоники "PEMDAS" или "Please Excuse Му Dear Aunt Sally" (Пожалуйста,
извините мою дорогую тетю Салли).
Кроме арифметических в JavaScript есть еще много операторов, поэтому плохая
новость: запомнить вам придется намного больший порядок. Хорошая новость -
здесь, как и в математике, круглые скобки превосходят все: если вы не уверены в по
рядке выполнения операций определенного выражения, всегда можете поместить
в круглые скобки операции, которые нужно выполнять сначала.
В настоящее время в JavaScript есть 56 операторов, сгруппированных в 19 уровней
приоритета (precedence level). Операторы с более высоким приоритетом выполня
ются перед операторами с более низким приоритетом. Хотя с годами я постепенно
запомнил эту таблицу (не предпринимая для этого сознательных усилий), я все еще
иногда обращаюсь к ней, чтобы обновить ее в памяти или увидеть, в какие уров
ни приоритета вписываются новые средства языка. Таблица приоритета операторов
приведена в приложении Б.
Операторы с одинаковым приоритетом вычисляются либо справа налево, либо
(
слева направо. Например, умножение и деление имеют один и тот же приоритет 1 4)
и вычисляются слева направо, а операторы присваивания (уровень приоритета -
3) вычисляются справа налево. Вооружившись этим знанием, мы можем определить
порядок выполнения операций в данном примере.
1 1 0 Глава 5. Выражения и операторы

