You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
С точки зрения математики, такое изобилие плюсов может показаться странным. С точки зрения программирования – никаких разночтений: сначала выполнятся унарные плюсы, приведут строки к числам, а затем – бинарный `'+'` их сложит.
124
+
С точки зрения математика, такое изобилие плюсов выглядит странным. Но с точки зрения программиста – ничего особенного: сначала выполнятся унарные плюсы, приведут строки к числам, а затем – бинарный `'+'` их сложит.
125
125
126
126
Почему унарные плюсы выполнились до бинарного сложения? Как мы сейчас увидим, дело в их приоритете.
127
127
128
-
## Приоритет
128
+
## Приоритет операторов
129
129
130
130
В том случае, если в выражении есть несколько операторов – порядок их выполнения определяется *приоритетом*, или, другими словами, существует неявный порядок приоритетов операторов.
В JavaScript много операторов. Каждый оператор имеет соответствующий номер приоритета. Тот, у кого это число больше – выполнится раньше. Если приоритет одинаковый, то порядок выполнения – слева направо.
137
137
138
-
Отрывок из [таблицы приоритетов](https://developer.mozilla.org/en/JavaScript/Reference/operators/operator_precedence) (нет необходимости всё запоминать, но помните, что у унарных операторов приоритет выше, чем у бинарных):
138
+
Отрывок из [таблицы приоритетов](https://developer.mozilla.org/ru/JavaScript/Reference/operators/operator_precedence) (нет необходимости всё запоминать, но помните, что у унарных операторов приоритет выше, чем у бинарных):
139
139
140
140
| Приоритет | Название | Обозначение |
141
141
|------------|------|------|
@@ -204,7 +204,7 @@ alert( c ); // 0
204
204
Забавное применение присваивания, не так ли? Нам нужно понимать, как это работает, потому что иногда это можно увидеть в сторонних библиотеках, но писать самим в таком стиле не рекомендуется. Такие трюки не сделают ваш код более понятным или читабельным.
205
205
````
206
206
207
-
## Взятие остатка%
207
+
## Остаток от деления%
208
208
209
209
Оператор взятия остатка `%` интересен тем, что, несмотря на обозначение, никакого отношения к процентам не имеет.
210
210
@@ -220,7 +220,7 @@ alert( 6 % 3 ); // 0, остаток от деления 6 на 3
220
220
221
221
## Возведение в степень **
222
222
223
-
Оператор возведения в степень `**` недавно добавили к языку.
223
+
Оператор возведения в степень `**` недавно добавили в язык.
224
224
225
225
Для натурального числа `b` результат `a ** b` равен `a`, умноженному на само себя `b` раз.
```smart header="Запятая имеет очень низкий приоритет"
428
428
Пожалуйста, обратите внимание, что оператор запятая имеет очень низкий приоритет, приоритет которого ниже `=`, поэтому скобки важны в приведённом примере выше.
429
429
430
-
Без них: `a = 1 + 2, 3 + 4` сначала выполнится `+`, суммируя числа в `a = 3, 7`, затем оператор присваивания `=` присваивает `a = 3`, и в конце число после запятой `7` не обрабатывается, поэтому игнорируется.
430
+
Без них: `a = 1 + 2, 3 + 4` сначала выполнится `+`, суммируя числа в `a = 3, 7`, затем оператор присваивания `=` присвоит `a = 3`, и в конце число не будет обработано, поэтому игнорируется.
431
431
```
432
432
433
433
Зачем нам оператор, который отбрасывает всё, кроме последней части?
0 commit comments