Skip to content

Commit d6eb76c

Browse files
authored
Добавлено уточнение об операторе ","
1 parent 13e6802 commit d6eb76c

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

1-js/02-first-steps/08-operators/article.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,17 @@ alert( a ); // 7 (результат вычисления 3 + 4)
452452
```smart header="Запятая имеет очень низкий приоритет"
453453
Пожалуйста, обратите внимание, что оператор `,` имеет очень низкий приоритет, ниже `=`, поэтому скобки важны в приведённом выше примере.
454454
455-
Без них в `a = 1 + 2, 3 + 4` сначала выполнится `+`, суммируя числа в `a = 3, 7`, затем оператор присваивания `=` присвоит `a = 3`, а то, что идёт дальше, будет игнорировано. Всё так же, как в `(a = 1 + 2), 3 + 4`.
455+
Попробуйте запустить следующий код (обратите внимание, **строгий режим `"use strict"` в примере ниже не используется, иначе мы бы получили ошибку**):
456+
457+
```js run
458+
a = 1 + 2, 3 + 4;
459+
460+
alert(a); // 3
461+
```
462+
463+
Необычный результат, правда? Особенно учитывая то, что оператор `,` должен «выполнять каждое выражение, но возвращать результат только последнего».
464+
465+
Без скобок в `a = 1 + 2, 3 + 4` сначала выполнится `+`, суммируя числа в `a = 3, 7`, затем оператор присваивания `=` присвоит `a = 3`, а то, что идёт дальше, будет проигнорировано. Всё так же, как в `(a = 1 + 2), 3 + 4`.
456466
```
457467

458468
Зачем нам оператор, который отбрасывает всё, кроме последнего выражения?

0 commit comments

Comments
 (0)