-
Notifications
You must be signed in to change notification settings - Fork 8k
/
index.md
73 lines (46 loc) · 3.35 KB
/
index.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
---
title: Оператор Запятая
slug: Web/JavaScript/Reference/Operators/Comma_operator
---
{{jsSidebar("Operators")}}
**Оператор запятая** выполняет каждый из его операндов (слева направо) и возвращает значение последнего операнда.
{{EmbedInteractiveExample("pages/js/expressions-commaoperators.html")}}
## Синтаксис
```
expr1, expr2, expr3...
```
## Параметры
- `expr1`, `expr2, expr3...`
- : Любые выражения.
## Описание
Вы можете использовать оператор запятая, когда необходимо включить несколько выражений в место, которое принимает только одно выражение. Наиболее частый пример использования этого оператора - это передача нескольких параметров в цикл `for`.
## Примеры
Если `a` это двумерный массив элементов размерностью 10 х 10, то приведённый ниже код использует оператор запятая для одновременного изменения двух переменных за раз.
Следующий код выводит в консоль значения диагональных элементов массива:
```js
for (let i = 0, j = 9; i <= 9; i++, j--)
console.log("a[" + i + "][" + j + "] = " + a[i][j]);
```
Заметьте, что запятая при объявлении переменной `var`, `let` или `const` **не** является оператором запятая, так как в данном случае она находится не в выражении. Скорее, это спец символ в объявлении переменных, комбинирующий их множество в одно выражение. Практически, эта запятая ведёт себя почти так же, как и запятая.
```js
// подобное объявление запрещено в строгом режиме(strict mode)
(a = b = 3), (c = 4); // возвращает 4 в консоль
console.log(a); // 3
x = ((y = 5), (z = 6)); // возвращает 6 в консоль
console.log(x); // 6
```
Оператор запятая полностью отличается от запятой в массивах, объектах, аргументах и параметрах функции.
### Вычисления и возврат значения
Другой пример использования оператора запятой – вычисления перед возвратом значения. Как было указано ранее, будет возвращён только последний элемент, но все предыдущие также будут вычислены. Таким образом можно сделать:
```js
function myFunc() {
let x = 0;
return (x += 1), x; // то же самое, что return ++x;
}
```
## Спецификации
{{Specifications}}
## Совместимость с браузерами
{{Compat}}
## Смотрите также
- [for loop](/ru/docs/Web/JavaScript/Reference/Statements/for)