diff options
-rw-r--r-- | files/ja/web/javascript/reference/operators/comma_operator/index.md | 97 |
1 files changed, 46 insertions, 51 deletions
diff --git a/files/ja/web/javascript/reference/operators/comma_operator/index.md b/files/ja/web/javascript/reference/operators/comma_operator/index.md index 0f8b47b1b8..08f913df51 100644 --- a/files/ja/web/javascript/reference/operators/comma_operator/index.md +++ b/files/ja/web/javascript/reference/operators/comma_operator/index.md @@ -1,51 +1,55 @@ --- -title: 'カンマ演算子 (,)' +title: カンマ演算子 (,) slug: Web/JavaScript/Reference/Operators/Comma_Operator tags: -- Comma -- Compound -- Expression +- カンマ +- 合成 +- 式 - JavaScript -- Language feature -- Operator -- Reference +- 言語機能 +- 演算子 +- リファレンス +browser-compat: javascript.operators.comma translation_of: Web/JavaScript/Reference/Operators/Comma_Operator --- -<div>{{jsSidebar("Operators")}}</div> +{{jsSidebar("Operators")}} -<p><strong>カンマ演算子</strong> (<strong><code>,</code></strong>) は、それぞれの演算対象を(左から右に)評価し、最後のオペランドの値を返します。これにより、複数の式が評価される複合式を作成することができ、複合式の最終値はそのメンバー式の一番右端の値となります。これは、<code><a href="/ja/docs/Web/JavaScript/Reference/Statements/for">for</a></code> ループに複数の引数を提供する場合によく使用されます。</p> +<strong>カンマ演算子</strong> (<strong>`,`</strong>) は、それぞれの演算対象を(左から右に)評価し、最後のオペランドの値を返します。これにより、複数の式が評価される複合式を作成することができ、複合式の最終値はそのメンバー式の一番右端の値となります。これは、[`for`](/ja/docs/Web/JavaScript/Reference/Statements/for) ループに複数の引数を提供する場合によく使用されます。 -<div>{{EmbedInteractiveExample("pages/js/expressions-commaoperators.html")}}</div> +{{EmbedInteractiveExample("pages/js/expressions-commaoperators.html")}} -<h2 id="Syntax">構文</h2> +## 構文 -<pre class="brush: js"><em>expr1</em>, <em>expr2, expr3...</em></pre> +```js +expr1, expr2, expr3... +``` -<h3 id="Parameters">引数</h3> +## 引数 -<dl> - <dt><code>expr1</code>, <code>expr2</code>, <code>expr3</code>...</dt> - <dd>1 つ以上の式で、最後の式が複合式の値として返されます。</dd> -</dl> +- `expr1`, `expr2`, `expr3`... + - : 1 つ以上の式で、最後の式が複合式の値として返されます。 -<h2 id="Usage_notes">使用上の注意</h2> +## 使用上の注意 -<p>カンマ演算子は、単一の式が求められる場所で複数の式を記述したい場合に使うことができます。この演算子が最もよく使われるのは、 <code>for</code> ループで複数の引数を与えたいときです。</p> +カンマ演算子は、単一の式が求められる場所で複数の式を記述したい場合に使うことができます。この演算子が最もよく使われるのは、 `for` ループで複数の引数を与えたいときです。 -<p>カンマ演算子は、配列、オブジェクト、関数の引数や引数の内部にあるカンマとは大きく異なります。</p> +カンマ演算子は、配列、オブジェクト、関数の引数や引数の内部にあるカンマとは大きく異なります。 -<h2 id="Examples">例</h2> +## 例 -<p>例えば次のコードでは、 <code>a</code> が、1 辺 10 要素からなる 2 次元配列内の要素を一度に 2 つ 変化させる為に、変数宣言部分でカンマ演算子を用いています。</p> +例えば次のコードでは、 `a` が、1 辺 10 要素からなる 2 次元配列内の要素を一度に 2 つ 変化させる為に、変数宣言部分でカンマ演算子を用いています。 -<p>このコードは、配列における対角線の要素の値を出力するものです。</p> +このコードは、配列における対角線の要素の値を出力するものです。 -<pre class="brush:js highlight:[1]">for (var i = 0, j = 9; i <= 9; i++, j--) - console.log('a[' + i + '][' + j + '] = ' + a[i][j]);</pre> +```js +for (var i = 0, j = 9; i <= 9; i++, j--) + console.log('a[' + i + '][' + j + '] = ' + a[i][j]); +``` -<p>代入を行う際にカンマを使うと、カンマ演算子が通常どおりに働いていないかのように見える場合があります (カンマ演算子が式の中にないため)。以下の例では <code>a</code> には <code>b = 3</code> の値 (すなわち 3) が設定されますが、さらに <code>c = 4</code> が評価されて、その結果 (すなわち 4) がコンソールに返されます。これは<a href="/ja/docs/Web/JavaScript/Reference/Operators/Operator_Precedence">演算子の優先順位と結合性</a>のためです。</p> +代入を行う際にカンマを使うと、カンマ演算子が通常どおりに働いていないかのように見える場合があります (カンマ演算子が式の中にないため)。以下の例では `a` には `b = 3` の値 (すなわち 3) が設定されますが、さらに `c = 4` が評価されて、その結果 (すなわち 4) がコンソールに返されます。これは[演算子の優先順位と結合性](/ja/docs/Web/JavaScript/Reference/Operators/Operator_Precedence)のためです。 -<pre class="brush: js">var a, b, c; +```js +var a, b, c; a = b = 3, c = 4; // コンソールに 4 が返る console.log(a); // 3 (もっとも左) @@ -54,37 +58,28 @@ var x, y, z; x = (y = 5, z = 6); // コンソールに 6 が返る console.log(x); // 6 (もっとも右) -</pre> +``` -<h3 id="Processing_and_then_returning">処理と返値</h3> +### 処理と返値 -<p>カンマ演算子が行うことのもうひとつの例が、値を返す前の処理です。前述のとおり最後の要素のみを返しますが、その他すべての要素も評価します。よって、以下のようなことができます。</p> +カンマ演算子が行うことのもうひとつの例が、値を返す前の処理です。前述のとおり最後の要素のみを返しますが、その他すべての要素も評価します。よって、以下のようなことができます。 -<pre class="brush: js">function myFunc() { - var x = 0; +```js +function myFunc() { + var x = 0; - return (x += 1, x); // 返値は ++x と同じ -}</pre> + return (x += 1, x); // return ++x と同じ +} +``` -<h2 id="Specifications">仕様書</h2> +## 仕様書 -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">仕様書</th> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-comma-operator', 'Comma operator')}}</td> - </tr> - </tbody> -</table> +{{Specifications}} -<h2 id="Browser_compatibility">ブラウザーの互換性</h2> +## ブラウザーの互換性 -<p>{{Compat("javascript.operators.comma")}}</p> +{{Compat}} -<h2 id="See_also">関連情報</h2> +## 関連情報 -<ul> - <li><a href="/ja/docs/Web/JavaScript/Reference/Statements/for"><code>for</code> ループ</a></li> -</ul> +- [`for` ループ](/ja/docs/Web/JavaScript/Reference/Statements/for) |