aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/javascript/reference/operators/оператор_запятая/index.html
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:52 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:52 -0500
commit074785cea106179cb3305637055ab0a009ca74f2 (patch)
treee6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/ru/web/javascript/reference/operators/оператор_запятая/index.html
parentda78a9e329e272dedb2400b79a3bdeebff387d47 (diff)
downloadtranslated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.gz
translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.bz2
translated-content-074785cea106179cb3305637055ab0a009ca74f2.zip
initial commit
Diffstat (limited to 'files/ru/web/javascript/reference/operators/оператор_запятая/index.html')
-rw-r--r--files/ru/web/javascript/reference/operators/оператор_запятая/index.html103
1 files changed, 103 insertions, 0 deletions
diff --git a/files/ru/web/javascript/reference/operators/оператор_запятая/index.html b/files/ru/web/javascript/reference/operators/оператор_запятая/index.html
new file mode 100644
index 0000000000..471c81ba88
--- /dev/null
+++ b/files/ru/web/javascript/reference/operators/оператор_запятая/index.html
@@ -0,0 +1,103 @@
+---
+title: Оператор Запятая
+slug: Web/JavaScript/Reference/Operators/Оператор_Запятая
+tags:
+ - Оператор запятая
+translation_of: Web/JavaScript/Reference/Operators/Comma_Operator
+---
+<div>{{jsSidebar("Operators")}}</div>
+
+<p><strong>Оператор запятая</strong> выполняет каждый из его операндов (слева направо) и возвращает значение последнего операнда.</p>
+
+<div>{{EmbedInteractiveExample("pages/js/expressions-commaoperators.html")}}</div>
+
+
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox"><em>expr1</em>, <em>expr2, expr3...</em></pre>
+
+<h2 id="Параметры">Параметры</h2>
+
+<dl>
+ <dt><code>expr1</code>, <code>expr2, expr3...</code></dt>
+ <dd>Любые выражения.</dd>
+</dl>
+
+<h2 id="Описание">Описание</h2>
+
+<p>Вы можете использовать оператор запятая, когда необходимо включить несколько выражений в место, которое принимает только одно выражение. Наиболее частый пример использования этого оператора - это передача нескольких параметров в цикл <code>for</code>.</p>
+
+<h2 id="Примеры">Примеры</h2>
+
+<p>Если <code>a</code> это двумерный массив элементов размерностью 10 х 10, то приведенный ниже код использует оператор запятая для одновременного изменения двух переменных за раз.</p>
+
+<p>Следующий код выводит в консоль значения диагональных элементов массива:</p>
+<pre class="brush:js;highlight:[1]">for (let i = 0, j = 9; i &lt;= 9; i++, j--)
+ console.log("a[" + i + "][" + j + "] = " + a[i][j]);</pre>
+
+<p>Заметьте, что запятая при объявлении переменной <code>var</code>, <code>let</code> или <code>const</code> <strong>не</strong> является оператором запятая, так как в данном случае она находится не в выражении. Скорее, это спец символ в объявлении переменных, комбинирующий их множество в одно выражение. Практически, эта запятая ведет себя почти так же, как и запятая.</p>
+
+<pre class="brush: js"> // подобное объявление запрещено в строгом режиме(strict mode)
+
+a = b = 3, c = 4; // возвращает 4 в консоль
+console.log(a); // 3
+x = (y = 5, z = 6); // возвращает 6 в консоль
+console.log(x); // 6
+</pre>
+
+<p>Оператор запятая полностью отличается от запятой в массивах, объектах, аргументах и параметрах функции.</p>
+
+<h3 id="Вычисления_и_возврат_значения">Вычисления и возврат значения</h3>
+
+<p>Другой пример использования оператора запятой – вычисления перед возвратом значения. Как было указано ранее, будет возвращён только последний элемент, но все предыдущие также будут вычислены. Таким образом можно сделать:</p>
+
+<pre class="brush: js">function myFunc () {
+ let x = 0;
+
+ return (x += 1, x); // то же самое, что return ++x;
+}</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Статус</th>
+ <th scope="col">Комментарий</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-comma-operator', 'Comma operator')}}</td>
+ <td>{{Spec2('ESDraft')}}</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-comma-operator', 'Comma operator')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES5.1', '#sec-11.14', 'Comma operator')}}</td>
+ <td>{{Spec2('ES5.1')}}</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES1', '#sec-11.14', 'Comma operator')}}</td>
+ <td>{{Spec2('ES1')}}</td>
+ <td>Initial definition</td>
+ </tr>
+ </tbody>
+ </table>
+
+<h2 id="Совместимость_браузеров">Совместимость браузеров</h2>
+
+
+
+<p>{{Compat("javascript.operators.comma")}}</p>
+
+<h2 id="Смотри_также">Смотри также</h2>
+
+<ul>
+ <li><a href="/ru/docs/Web/JavaScript/Reference/Statements/for">for loop</a></li>
+</ul>