「JavaScript/演算子」の版間の差分
削除された内容 追加された内容
s/source/syntaxhighlight/g; →グループ化演算子 |
|||
340 行
== 代入演算子 ==
'''代入演算子'''(だいにゅうえんざんし、''assignment operator'')は変数に値を代入します。代入した値を返し
</ref>。
<syntaxhighlight lang="javascript" line>
let x = 0;
console.log(x = 1); // 1
let a, b;
a = b = 0;
</syntaxhighlight>
=== 複合代入演算子 ===
複合代入演算子(ふくごうだいにゅうえんざんし、Compound assignment operators)は、<syntaxhighlight lang="javascript" inline>x = x OPERATOR y</syntaxhighlight>の形式を<syntaxhighlight lang="javascript" inline>x OPERATOR= y</syntaxhighlight>の形式に短縮表記したものです。代入演算子と同じ優先度を持ち、演算し代入した値を返し、結合は右から左です。<syntaxhighlight lang="javascript" inline>OPERATOR=</syntaxhighlight>で1つのトークンで、<syntaxhighlight lang="javascript" inline>OPERATOR</syntaxhighlight>と<syntaxhighlight lang="javascript" inline>=</syntaxhighlight>の間に空白を含めることはできません。
例えば、<syntaxhighlight lang="javascript" inline>x *= y</syntaxhighlight>は<syntaxhighlight lang="javascript" inline>x = x * y</syntaxhighlight>と等価です。
<syntaxhighlight lang="javascript">
362 ⟶ 368行目:
! 意味
|-
| <syntaxhighlight lang="javascript" inline>x += y</syntaxhighlight>
| <syntaxhighlight lang="javascript" inline>x = x + y</syntaxhighlight>
| 加算代入演算子 (
|-
| <syntaxhighlight lang="javascript" inline>x -= y</syntaxhighlight>
| <syntaxhighlight lang="javascript" inline>x = x - y</syntaxhighlight>
| 減算代入演算子 (
|-
| <syntaxhighlight lang="javascript" inline>x *= y</syntaxhighlight>
| <syntaxhighlight lang="javascript" inline>x = x * y</syntaxhighlight>
| 乗算代入演算子 (
|-
| <syntaxhighlight lang="javascript" inline>x /= y</syntaxhighlight>
| <syntaxhighlight lang="javascript" inline>x = x / y</syntaxhighlight>
| 除算代入演算子 (
|-
| <syntaxhighlight lang="javascript" inline>x %= y</syntaxhighlight>
| <syntaxhighlight lang="javascript" inline>x = x % y</syntaxhighlight>
| 剰余代入演算子 (
|-
| <syntaxhighlight lang="javascript" inline>x **= y</syntaxhighlight>
| <syntaxhighlight lang="javascript" inline>x = x ** y</syntaxhighlight>
|
|-
| <syntaxhighlight lang="javascript" inline>x <<= y</syntaxhighlight>
| <syntaxhighlight lang="javascript" inline>x = x << y</syntaxhighlight>
|
|-
| <syntaxhighlight lang="javascript" inline>x >>= y</syntaxhighlight>
| <syntaxhighlight lang="javascript" inline>x = x >> y</syntaxhighlight>
|
|-
| <syntaxhighlight lang="javascript" inline>x >>>= y</syntaxhighlight>
| <syntaxhighlight lang="javascript" inline>x = x >>> y</syntaxhighlight>
|
|-
| <syntaxhighlight lang="javascript" inline>x &= y</syntaxhighlight>
| <syntaxhighlight lang="javascript" inline>x = x & y</syntaxhighlight>
| ビット
|-
| <syntaxhighlight lang="javascript" inline>x ^= y</syntaxhighlight>
| <syntaxhighlight lang="javascript" inline>x = x ^ y</syntaxhighlight>
| ビット
|-
| <syntaxhighlight lang="javascript" inline>x |= y</syntaxhighlight>
| <syntaxhighlight lang="javascript" inline>x = x | y</syntaxhighlight>
| ビット間論理和
|-
| <syntaxhighlight lang="javascript" inline>x &&= y</syntaxhighlight>
| <syntaxhighlight lang="javascript" inline>x = x && y</syntaxhighlight>
| 論理積
|-
| <syntaxhighlight lang="javascript" inline>x ||= y</syntaxhighlight>
| <syntaxhighlight lang="javascript" inline>x = x || y</syntaxhighlight>
| 論理和代入演算子 (Logical OR assignment operator)
|}
=== 分割代入 ===
分割代入(ぶんかつだいにゅう、Destructuring assignment)は、配列の値やオブジェクトのプロパティを個別の変数に展開することができるJavaScriptの表現方法です<ref>[https://tc39.es/ecma262/#sec-destructuring-assignment ECMA-262::13.15.5 Destructuring Assignment]</ref>。
<syntaxhighlight lang="javascript" line>
let x,y;
[x, y] = [2, 3];
console.log(x); // 2
console.log(y); // 3
let a, b;
({ a, b } = { a: 12, b: 21 }); // 括弧がないとブロック文と解されてしまう。
console.log(a); // 12
console.log(b); // 21
[a, b] = [b, a]
console.log(a); // 21
console.log(b); // 12
</syntaxhighlight>
== 論理演算子 ==
|