From fb129cca2082cbc57f93025a2e46797e5fb4a0f3 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Sun, 26 Sep 2021 01:32:15 +0900 Subject: 代入演算子の文書を更新 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 2021/07/21 時点の英語版に更新 --- .../operators/addition_assignment/index.md | 59 +++++------- .../reference/operators/assignment/index.md | 59 +++++------- .../operators/bitwise_and_assignment/index.md | 51 ++++------- .../operators/bitwise_or_assignment/index.md | 54 +++++------ .../operators/bitwise_xor_assignment/index.md | 48 ++++------ .../operators/division_assignment/index.md | 47 ++++------ .../operators/exponentiation_assignment/index.md | 47 ++++------ .../operators/left_shift_assignment/index.md | 49 ++++------ .../operators/logical_and_assignment/index.md | 100 +++++++++------------ .../operators/logical_nullish_assignment/index.md | 69 ++++++-------- .../operators/logical_or_assignment/index.md | 90 ++++++++----------- .../operators/multiplication_assignment/index.md | 45 ++++------ .../operators/remainder_assignment/index.md | 45 ++++------ .../operators/right_shift_assignment/index.md | 49 ++++------ .../operators/subtraction_assignment/index.md | 45 ++++------ .../unsigned_right_shift_assignment/index.md | 49 ++++------ 16 files changed, 345 insertions(+), 561 deletions(-) (limited to 'files/ja/web') diff --git a/files/ja/web/javascript/reference/operators/addition_assignment/index.md b/files/ja/web/javascript/reference/operators/addition_assignment/index.md index 3a3645d2ab..fabea99ceb 100644 --- a/files/ja/web/javascript/reference/operators/addition_assignment/index.md +++ b/files/ja/web/javascript/reference/operators/addition_assignment/index.md @@ -7,72 +7,59 @@ tags: - 言語機能 - 演算子 - Reference +browser-compat: javascript.operators.addition_assignment translation_of: Web/JavaScript/Reference/Operators/Addition_assignment --- {{jsSidebar("Operators")}} -加算代入演算子 (`+=`) は、右辺のオペランドの値を変数に加算し、結果を変数に代入します。 2つのオペランドの型は、加算代入演算子の動作を決定します。加算もしくは連結が可能です。 +加算代入演算子 (`+=`) は、右オペランドの値を変数に加算し、結果を変数に代入します。2 つのオペランドの型が加算代入演算子の動作を決定します。加算もしくは連結が可能です。 {{EmbedInteractiveExample("pages/js/expressions-addition-assignment.html")}} -
- - - ## 構文 -
Operator: x += y
-Meaning:  x  = x + y
+```js +x += y // x = x + y +``` ## 例 -

加算代入の使用

+### 加算代入の使用 -
// 以下の変数を想定
+```js
+// 以下の変数を想定
 //  foo = 'foo'
 //  bar = 5
 //  baz = true
 
-// 数値 + 数値 -> 加算
+// 数値 + 数値 -> 加算
 bar += 2 // 7
 
-// ブール値 + 数値 -> 加算
+// 論理値 + 数値 -> 加算
 baz += 1 // 2
 
-// ブール値 + ブール値 -> 加算
+// 論理値 + 論理値 -> 加算
 baz += false // 1
 
-// 数値 + 文字列 -> 連結
+// 数値 + 文字列 -> 連結
 bar += 'foo' // "5foo"
 
-// 文字列 + ブール値 -> 連結
+// 文字列 + 論理値 -> 連結
 foo += false // "foofalse"
 
-// 文字列 + 文字列 -> 連結
-foo += 'bar' // "foobar"
- -

仕様

- - - - - - - - - - -
仕様
{{SpecName('ESDraft', '#sec-assignment-operators', 'Assignment operators')}}
+// 文字列 + 文字列 -> 連結 +foo += 'bar' // "foobar" +``` -

ブラウザーの互換性

+## 仕様書 +{{Specifications}} +## ブラウザーの互換性 -{{Compat("javascript.operators.addition_assignment")}} +{{Compat}} -

関連項目

+## 関連情報 - +- [JavaScript ガイドの代入演算子](/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#assignment) +- [加算演算子](/ja/docs/Web/JavaScript/Reference/Operators/Addition) diff --git a/files/ja/web/javascript/reference/operators/assignment/index.md b/files/ja/web/javascript/reference/operators/assignment/index.md index c6b8cf4ceb..417d784eed 100644 --- a/files/ja/web/javascript/reference/operators/assignment/index.md +++ b/files/ja/web/javascript/reference/operators/assignment/index.md @@ -2,61 +2,48 @@ title: 代入 (=) slug: Web/JavaScript/Reference/Operators/Assignment tags: - - Assignment operator + - 代入演算子 - JavaScript - - Language feature - - Operator + - 言語機能 + - 演算子 - Reference +browser-compat: javascript.operators.assignment translation_of: Web/JavaScript/Reference/Operators/Assignment --- -
{{jsSidebar("Operators")}}
+{{jsSidebar("Operators")}} -

代入(単純代入)演算子 (=) は、変数に値を代入するために使用されます。割り当て操作は、割り当てられた値を評価します。 単一の値を複数の変数に割り当てるため、代入演算子の連鎖が可能です。

+単純代入演算子 (`=`) は、変数に値を代入するために使用されます。割り当て操作は、割り当てられた値として評価されます。代入演算子を使用して、単一の値を複数の変数に割り当てることができます。 -
{{EmbedInteractiveExample("pages/js/expressions-assignment.html")}}
+{{EmbedInteractiveExample("pages/js/expressions-assignment.html")}} -
+## 構文 +```js +x = y +``` +## 例 -

構文

+### 代入と連鎖 -
Operator: x = y
-
- -

- -

代入と連鎖

- -
// 以下の変数を想定
+```ja
+// 以下の変数を想定
 //  x = 5
 //  y = 10
 //  z = 25
 
 x = y     // x は 10
-x = y = z // x, y そして z は全て 25
- -

仕様

- - - - - - - - - - -
仕様書
{{SpecName('ESDraft', '#sec-assignment-operators', 'Assignment operators')}}
+x = y = z // x, y そして z はすべて 25 +``` -

ブラウザーの互換性

+## 仕様書 +{{Specifications}} +## ブラウザーの互換性 -

{{Compat("javascript.operators.assignment")}}

+{{Compat}} -

関連項目

+## 関連情報 - +- [JavaScript ガイドの代入演算子](/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#assignment) diff --git a/files/ja/web/javascript/reference/operators/bitwise_and_assignment/index.md b/files/ja/web/javascript/reference/operators/bitwise_and_assignment/index.md index 6e079720ad..7e89f99142 100644 --- a/files/ja/web/javascript/reference/operators/bitwise_and_assignment/index.md +++ b/files/ja/web/javascript/reference/operators/bitwise_and_assignment/index.md @@ -7,58 +7,41 @@ tags: - 言語機能 - 演算子 - Reference - - 代入演算子 - - 演算子 - - 言語機能 +browser-compat: javascript.operators.bitwise_and_assignment translation_of: Web/JavaScript/Reference/Operators/Bitwise_AND_assignment --- {{jsSidebar("Operators")}} -ビット論理積代入演算子 (`&=`) は、両方のオペランドのバイナリ表現を使用し、それらに対してビット単位の AND 演算を実行して、結果を変数に代入します。 +ビット論理積代入演算子 (`&=`) は、両方のオペランドの二進表現を使用し、それらに対してビット単位の AND 演算を実行して、結果を変数に代入します。 {{EmbedInteractiveExample("pages/js/expressions-bitwise-and-assignment.html")}} -
- - - ## 構文 -
Operator: x &= y
-Meaning:  x  = x & y
-
+```js +x &= y // x = x & y +``` ## 例 -

ビット論理積代入の使用

+### ビット論理積代入の使用 -
let a = 5;
+```js
+let a = 5;
 // 5:     00000000000000000000000000000101
 // 2:     00000000000000000000000000000010
-a &= 2; // 0
- -

仕様

- - - - - - - - - - -
仕様書
{{SpecName('ESDraft', '#sec-assignment-operators', 'Assignment operators')}}
+a &= 2; // 0 +``` -

ブラウザーの互換性

+## 仕様書 +{{Specifications}} +## ブラウザーの互換性 -{{Compat("javascript.operators.bitwise_and_assignment")}} +{{Compat}} -

関連項目

+## 関連情報 - +- [JavaScript ガイドの代入演算子](/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#assignment) +- [ビット論理積演算子](/ja/docs/Web/JavaScript/Reference/Operators/Bitwise_AND) diff --git a/files/ja/web/javascript/reference/operators/bitwise_or_assignment/index.md b/files/ja/web/javascript/reference/operators/bitwise_or_assignment/index.md index 3075a98eaf..38d941745e 100644 --- a/files/ja/web/javascript/reference/operators/bitwise_or_assignment/index.md +++ b/files/ja/web/javascript/reference/operators/bitwise_or_assignment/index.md @@ -3,62 +3,48 @@ title: ビット論理和代入 (|=) slug: Web/JavaScript/Reference/Operators/Bitwise_OR_assignment tags: - 代入演算子 - - Deprecated - JavaScript - 言語機能 - 演算子 - Reference - - 代入演算子 - - 演算子 +browser-compat: javascript.operators.bitwise_or_assignment translation_of: Web/JavaScript/Reference/Operators/Bitwise_OR_assignment --- {{jsSidebar("Operators")}} -ビット論理和代入演算子 (`|=`) は、両方のオペランドの二進表現を使用し、これらにビット単位の OR 演算を行って、結果を変数に代入します。 +ビット論理和代入演算子 (`|=`) は、両方のオペランドの二進表現を使用し、それらに対してビット単位の OR 演算を実行して、結果を変数に代入します。 {{EmbedInteractiveExample("pages/js/expressions-bitwise-or-assignment.html")}} - - -

構文

+## 構文 -
演算子: x |= y
-意味:   x  = x | y
+```js +x |= y // x = x | y +``` -

+## 例 -

ビット論理和代入の使用

+### ビット論理和代入の使用 -
let a = 5;
+```js
+let a = 5;
 a |= 2; // 7
 // 5: 00000000000000000000000000000101
 // 2: 00000000000000000000000000000010
 // -----------------------------------
-// 7: 00000000000000000000000000000111
+// 7: 00000000000000000000000000000111 +``` -

仕様

+## 仕様書 - - - - - - - - - - - -
仕様書
{{SpecName('ESDraft', '#sec-assignment-operators', 'Assignment operators')}}
+{{Specifications}} -

ブラウザーの互換性

+## ブラウザーの互換性 -{{Compat("javascript.operators.bitwise_or_assignment")}} +{{Compat}} -

関連情報

+## 関連情報 - +- [JavaScript ガイドの代入演算子](/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#assignment) +- [ビット論理和演算子](/ja/docs/Web/JavaScript/Reference/Operators/Bitwise_OR) +- [論理 OR 代入 (`||=`)](/ja/docs/Web/JavaScript/Reference/Operators/Logical_OR_assignment) diff --git a/files/ja/web/javascript/reference/operators/bitwise_xor_assignment/index.md b/files/ja/web/javascript/reference/operators/bitwise_xor_assignment/index.md index 9f784fd191..e738a330aa 100644 --- a/files/ja/web/javascript/reference/operators/bitwise_xor_assignment/index.md +++ b/files/ja/web/javascript/reference/operators/bitwise_xor_assignment/index.md @@ -11,24 +11,22 @@ translation_of: Web/JavaScript/Reference/Operators/Bitwise_XOR_assignment --- {{jsSidebar("Operators")}} -ビット排他的論理和代入演算子 (`^=`) は、両方のオペランドのバイナリ表現を使用し、それらに対してビット単位の XOR 演算を実行し、結果を変数に代入します。 +ビット排他的論理和代入演算子 (`^=`) は、両方のオペランドの二進表現を使用し、それらに対してビット単位の XOR 演算を実行し、結果を変数に代入します。 {{EmbedInteractiveExample("pages/js/expressions-bitwise-xor-assignment.html")}} -
- - - ## 構文 -
Operator: x ^= y
-Meaning:  x  = x ^ y
+```js +x ^= y // x = x ^ y +``` ## 例 -

ビット排他的論理和代入の使用

+### ビット排他的論理和代入の使用 -
let a = 5;      // 00000000000000000000000000000101
+```js
+let a = 5;      // 00000000000000000000000000000101
 a ^= 3;         // 00000000000000000000000000000011
 
 console.log(a); // 00000000000000000000000000000110
@@ -39,33 +37,17 @@ b ^= 0;         // 00000000000000000000000000000000
 
 console.log(b); // 00000000000000000000000000000101
 // 5
+```
 
+## 仕様書
 
+{{Specifications}}
 
-
- -

仕様

- - - - - - - - - - -
仕様書
{{SpecName('ESDraft', '#sec-assignment-operators', 'Assignment operators')}}
- -

ブラウザーの互換性

- - +## ブラウザーの互換性 -{{Compat("javascript.operators.bitwise_xor_assignment")}} +{{Compat}} -

関連項目

+## 関連情報 - +- [JavaScript ガイドの代入演算子](/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#assignment) +- [ビット排他的論理和演算子](/ja/docs/Web/JavaScript/Reference/Operators/Bitwise_XOR) diff --git a/files/ja/web/javascript/reference/operators/division_assignment/index.md b/files/ja/web/javascript/reference/operators/division_assignment/index.md index da51bf74c2..2ff001bc38 100644 --- a/files/ja/web/javascript/reference/operators/division_assignment/index.md +++ b/files/ja/web/javascript/reference/operators/division_assignment/index.md @@ -7,55 +7,44 @@ tags: - 言語機能 - 演算子 - Reference - - 代入演算子 - - 演算子 - - 言語機能 +browser-compat: javascript.operators.division_assignment translation_of: Web/JavaScript/Reference/Operators/Division_assignment --- {{jsSidebar("Operators")}} -除算代入演算子 (`/=`) は変数を右オペランドの値で除算し、結果をその変数に代入するものです。 +除算代入演算子 (`/=`) は変数を右オペランドの値で除算し、結果をその変数に代入します。 {{EmbedInteractiveExample("pages/js/expressions-division-assignment.html")}} - -

構文

-
演算子: x /= y
-意味:   x  = x / y
+```js +x /= y // x = x / y +```

-

除算代入の使用

+### 除算代入の使用 -
// 以下の変数があると想定する
+```js
+// 以下の変数があり、すべての演算がこの順に実行されると想定する
 //  bar = 5
 
 bar /= 2     // 2.5
+bar /= 2     // 1.25
+bar /= 0     // Infinity
 bar /= 'foo' // NaN
-bar /= 0     // Infinity
+``` -

仕様書

+## 仕様書 - - - - - - - - - -
仕様書
{{SpecName('ESDraft', '#sec-assignment-operators', 'Assignment operators')}}
+{{Specifications}} -

ブラウザーの互換性

+## ブラウザーの互換性 -{{Compat("javascript.operators.division_assignment")}} +{{Compat}} -

関連情報

+## 関連情報 - +- [JavaScript ガイドの代入演算子](/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#assignment) +- [除算演算子](/ja/docs/Web/JavaScript/Reference/Operators/Division) diff --git a/files/ja/web/javascript/reference/operators/exponentiation_assignment/index.md b/files/ja/web/javascript/reference/operators/exponentiation_assignment/index.md index 8641cd8dab..c2675e3791 100644 --- a/files/ja/web/javascript/reference/operators/exponentiation_assignment/index.md +++ b/files/ja/web/javascript/reference/operators/exponentiation_assignment/index.md @@ -7,55 +7,42 @@ tags: - 言語機能 - 演算子 - Reference +browser-compat: javascript.operators.exponentiation_assignment translation_of: Web/JavaScript/Reference/Operators/Exponentiation_assignment --- {{jsSidebar("Operators")}} -べき乗代入演算子 (`**=`) は、変数の値を右辺のオペランドでべき乗します。 +べき乗代入演算子 (`**=`) は、変数の値を右オペランドでべき乗します。 {{EmbedInteractiveExample("pages/js/expressions-exponentiation-assignment.html")}} -
- - - ## 構文 -
Operator: x **= y
-Meaning:  x  = x ** y
+```js +x **= y // x = x ** y +``` ## 例 -

べき乗代入の仕様

+### べき乗代入の仕様 -
// 次の変数を想定
+```js
+// 次の変数を想定
 //  bar = 5
 
 bar **= 2     // 25
-bar **= 'foo' // NaN
- -

仕様

- - - - - - - - - - -
仕様
{{SpecName('ESDraft', '#sec-assignment-operators', 'Assignment operators')}}
+bar **= 'foo' // NaN +``` -

ブラウザー実装状況

+## 仕様書 +{{Specifications}} +## ブラウザーの互換性 -{{Compat("javascript.operators.exponentiation_assignment")}} +{{Compat}} -

関連項目

+## 関連情報 - +- [JavaScript ガイドの代入演算子](/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#assignment) +- [べき乗演算子](/ja/docs/Web/JavaScript/Reference/Operators/Exponentiation) diff --git a/files/ja/web/javascript/reference/operators/left_shift_assignment/index.md b/files/ja/web/javascript/reference/operators/left_shift_assignment/index.md index b57a508e84..66f59bc046 100644 --- a/files/ja/web/javascript/reference/operators/left_shift_assignment/index.md +++ b/files/ja/web/javascript/reference/operators/left_shift_assignment/index.md @@ -7,55 +7,42 @@ tags: - 言語機能 - 演算子 - Reference +browser-compat: javascript.operators.left_shift_assignment translation_of: Web/JavaScript/Reference/Operators/Left_shift_assignment --- {{jsSidebar("Operators")}} -左シフト代入演算子 (`<<=`) は、指定された量のビットを左に移動し、結果を変数に代入します。 +左シフト代入演算子 (`<<=`) は、指定された数だけビットを左に移動し、結果を変数に代入します。 {{EmbedInteractiveExample("pages/js/expressions-left-shift-assignment.html")}} -
- - - ## 構文 -
Operator: x <<= y
-Meaning:  x   = x << y
+```js +x <<= y // x = x << y +``` ## 例 -

左シフト代入の使用

+### 左シフト代入の使用 -
let a = 5;
+```js
+let a = 5;
 // 00000000000000000000000000000101
 
-bar <<= 2; // 20
-// 00000000000000000000000000010100
- -

仕様

- - - - - - - - - - -
仕様
{{SpecName('ESDraft', '#sec-assignment-operators', 'Assignment operators')}}
+a <<= 2; // 20 +// 00000000000000000000000000010100 +``` -

ブラウザー実装状況

+## 仕様書 +{{Specifications}} +## ブラウザーの互換性 -{{Compat("javascript.operators.left_shift_assignment")}} +{{Compat}} -

関連項目

+## 関連情報 - +- [JavaScript ガイドの代入演算子](/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#assignment) +- [左シフト演算子](/ja/docs/Web/JavaScript/Reference/Operators/Left_shift) diff --git a/files/ja/web/javascript/reference/operators/logical_and_assignment/index.md b/files/ja/web/javascript/reference/operators/logical_and_assignment/index.md index fdca0cecc5..d185cedff8 100644 --- a/files/ja/web/javascript/reference/operators/logical_and_assignment/index.md +++ b/files/ja/web/javascript/reference/operators/logical_and_assignment/index.md @@ -4,86 +4,72 @@ slug: Web/JavaScript/Reference/Operators/Logical_AND_assignment tags: - JavaScript - 言語機能 - - Logical assignment + - 論理代入 - 演算子 - Reference +browser-compat: javascript.operators.logical_and_assignment translation_of: Web/JavaScript/Reference/Operators/Logical_AND_assignment --- {{jsSidebar("Operators")}} -論理積代入 (`x &&= y`) 演算子は、`x` が {{Glossary("truthy")}} である場合にのみ代入します。 +論理積代入 (`x &&= y`) 演算子は、`x` が{{Glossary("truthy", "真値")}}である場合にのみ代入を行います。 {{EmbedInteractiveExample("pages/js/expressions-logical-and-assignment.html")}} - - ## 構文 -
expr1 &&= expr2
-
+```js +expr1 &&= expr2 +``` -

説明

+## 解説 -

短絡評価(ショートサーキット)

+### 短絡評価 (ショートサーキット) -論理積演算子は左から右に評価され、次のルールを使って短絡評価の可能性があるかどうかテストされます。 +[論理積演算子](/ja/docs/Web/JavaScript/Reference/Operators/Logical_AND)は左から右に評価され、次のルールを使って短絡評価の可能性があるかどうかテストされます。 -`(偽値の式) && expr` は、偽値の式が短絡評価されます。 +`(偽値の式) && expr` は、偽値の式が短絡評価されます。 -短絡評価とは、上記の `expr` 部分が評価されないことを意味します。したがって、評価された場合の副作用は発生しません。(例えば、`expr` が関数呼び出しである場合、呼び出しは行われません。) +短絡評価とは、上記の `expr` 部分が**評価されない**ことを意味します。したがって、評価された場合の副作用は発生しません (例えば、`expr` が関数呼び出しである場合、呼び出しは行われません)。 -論理積代入も短絡評価されます。これは、`x &&= y` が以下と等価であることを意味します。 +論理積代入も短絡評価されます。これは、`x &&= y` が以下と等価であることを意味します。 -
x && (x = y);
+```js +x && (x = y); +``` -そして、常に代入が行われる以下と等価ではありません。 +そして、常に代入が行われる以下とは等価ではありません。 -
x = x && y;
-
+```js example-bad +x = x && y; +``` ## 例 -

論理積代入演算子の使用

+### 論理積代入演算子の使用 -
let x = 0;
+```js
+let x = 0;
 let y = 1;
 
-x &&= 0; // 0
-x &&= 1; // 0
-y &&= 1; // 1
-y &&= 0; // 0
-
- -

仕様

- - - - - - - - - - - - - - -
仕様書
{{SpecName('Logical Assignment', '#sec-assignment-operators', 'Assignment operators')}}
- -

ブラウザの互換性

- - - -{{Compat("javascript.operators.logical_and_assignment")}} - -

関連情報

- - +x &&= 0; // 0 +x &&= 1; // 0 +y &&= 1; // 1 +y &&= 0; // 0 +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- [論理積演算子 (&&)](/ja/docs/Web/JavaScript/Reference/Operators/Logical_AND) +- [Null 合体演算子 (`??`)](/ja/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator) +- [ビット論理積代入 (`&=`)](/ja/docs/Web/JavaScript/Reference/Operators/Bitwise_AND_assignment) +- {{Glossary("Truthy", "真値")}} +- {{Glossary("Falsy", "偽値")}} diff --git a/files/ja/web/javascript/reference/operators/logical_nullish_assignment/index.md b/files/ja/web/javascript/reference/operators/logical_nullish_assignment/index.md index d8d693ae0f..cf42315146 100644 --- a/files/ja/web/javascript/reference/operators/logical_nullish_assignment/index.md +++ b/files/ja/web/javascript/reference/operators/logical_nullish_assignment/index.md @@ -5,9 +5,10 @@ tags: - 代入演算子 - JavaScript - 言語機能 - - Logical Operator + - 論理演算子 - 演算子 - Reference +browser-compat: javascript.operators.logical_nullish_assignment translation_of: Web/JavaScript/Reference/Operators/Logical_nullish_assignment --- {{jsSidebar("Operators")}} @@ -16,37 +17,40 @@ Null 合体代入 (`x ??= y`) 演算子は、`x` が {{Glossary("nullish")}} (`n {{EmbedInteractiveExample("pages/js/expressions-logical-nullish-assignment.html")}} - - ## 構文 -
expr1 ??= expr2
-
+```js +expr1 ??= expr2 +``` -

説明

+## 解説 -

短絡評価(ショートサーキット)

+### 短絡評価 (ショートサーキット) -Null 合体演算子は左から右に評価され、次のルールを使って短絡評価の可能性があるかどうかテストされます。 +[Null 合体演算子](/ja/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator)は左から右に評価され、次のルールを使って短絡評価の可能性があるかどうかテストされます。 `(null や undefined ではない式) ?? expr` は、左辺が `null` でも `undefined` でもないことが証明されたら、左辺の式が短絡評価されます。 -短絡評価とは、上記の `expr` 部分が評価されないことを意味します。したがって、評価された場合の副作用は発生しません。(例えば、`expr` が関数呼び出しである場合、呼び出しは行われません。) +短絡評価とは、上記の `expr` 部分が**評価されない**ことを意味します。したがって、評価された場合の副作用は発生しません (例えば、`expr` が関数呼び出しである場合、呼び出しは行われません)。 Null 合体代入も短絡評価されます。これは、`x ??= y` が以下と等価であることを意味します。 -
x ?? (x = y);
+```js +x ?? (x = y); +``` そして、常に代入が行われる以下と等価ではありません。 -
x = x ?? y;
-
+```js example-bad +x = x ?? y; +``` ## 例 -

Null 合体代入演算子の使用

+### Null 合体代入演算子の使用 -
function config(options) {
+```js
+function config(options) {
   options.duration ??= 100;
   options.speed ??= 25;
   return options;
@@ -54,36 +58,19 @@ Null 合体代入も短絡評価されます。これは、`x ??= y` が以下
 
 config({ duration: 125 }); // { duration: 125, speed: 25 }
 config({}); // { duration: 100, speed: 25 }
-
- -

仕様

- - - - - - - - - - - - - - -
仕様書
{{SpecName('Logical Assignment', '#sec-assignment-operators', 'Assignment operators')}}
+``` -

ブラウザの互換性

+## Specifications +{{Specifications}} +## Browser compatibility -{{Compat("javascript.operators.logical_nullish_assignment")}} +{{Compat}} -

関連情報

+## See also - +- [Noll 合体演算子 (`??`)](/ja/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator) +- {{Glossary("Nullish")}} +- {{Glossary("Truthy", "真値")}} +- {{Glossary("Falsy", "偽値")}} diff --git a/files/ja/web/javascript/reference/operators/logical_or_assignment/index.md b/files/ja/web/javascript/reference/operators/logical_or_assignment/index.md index 67a4673a0c..3b04602f07 100644 --- a/files/ja/web/javascript/reference/operators/logical_or_assignment/index.md +++ b/files/ja/web/javascript/reference/operators/logical_or_assignment/index.md @@ -4,90 +4,78 @@ slug: Web/JavaScript/Reference/Operators/Logical_OR_assignment tags: - JavaScript - 言語機能 - - Logical Operator + - 論理代入 - 演算子 - Reference +browser-compat: javascript.operators.logical_or_assignment translation_of: Web/JavaScript/Reference/Operators/Logical_OR_assignment --- {{jsSidebar("Operators")}} -論理和代入演算子 (`x ||= y`) は、`x` が {{Glossary("falsy")}} である場合にのみ代入します。 +論理和代入演算子 (`x ||= y`) は、`x` が{{Glossary("falsy", "偽値")}}である場合にのみ代入を行います。 {{EmbedInteractiveExample("pages/js/expressions-logical-or-assignment.html")}} - - ## 構文 -
expr1 ||= expr2
-
+```js +expr1 ||= expr2 +``` -

説明

+## 解説 -

短絡評価(ショートサーキット)

+### 短絡評価 (ショートサーキット) -論理和演算子は次のように動作します。 +[論理和](/ja/docs/Web/JavaScript/Reference/Operators/Logical_OR)演算子は次のように動作します。 -
x || y;
-// x が truthy の場合 x を返します
-// x が truthy ではない場合 y を返します
+```js +x || y; +// x が真値の場合 x を返します +// x が真値ではない場合 y を返します +``` -論理和演算子は、1番目のオペランドが既に結果を決定していない場合にのみ、2番目のオペランドの評価を行う短絡評価をします。 +論理和演算子は、1 つ目のオペランドがまだ結果を決定していない場合にのみ、2 つ目のオペランドの評価を行う短絡評価をします。 -論理和代入も短絡評価されます。これは、`x ||= y` が以下と等価であることを意味します。 +論理和代入も同様に短絡評価され、右辺の評価が行われる論理演算の場合にのみ代入が行われます。言い替えれば、`x ||= y` は以下と等価です。 -
x || (x = y);
-
+```js +x || (x = y); +``` そして、常に代入が行われる以下と等価ではありません。 -
x = x || y;
-
+```js example-bad +x = x || y; +``` -注意: この動作は、数学的な代入演算子やビット代入演算子とは異なることに注意してください。 +なお、この動作は、数学的な代入演算子やビット代入演算子とは異なることに注意してください。 ## 例 -

デフォルトの内容を設定する

+### 既定の内容を設定する -"lyrics" 要素が空の場合は、`innerHTML` をデフォルト値に設定します。 +"lyrics" 要素が空の場合は、既定値を表示します。 -
document.getElementById('lyrics').innerHTML ||= '<i>No lyrics.</i>'
+```js +document.getElementById('lyrics').textContent ||= 'No lyrics.' +``` ここでの短絡評価は、要素が不必要に更新されることがなく、追加のパースやレンダリング作業、フォーカスの損失などの望ましくない副作用を引き起こすことがないので、特に有益です。 -注意: チェック対象の API が返す値に注意してください。空の文字列({{Glossary("falsy")}} な値)が返される場合は、`||=` を使用する必要があります。それ以外の場合(戻り値が {{jsxref("null")}} または {{jsxref("undefined")}} の場合)は `??=` 演算子を使用します。 - -

仕様

- - - - - - - - - - - - - - -
仕様書
{{SpecName('Logical Assignment', '#sec-assignment-operators', 'Assignment operators')}}
+注意: チェック対象の API が返す値に注意してください。空の文字列 ({{Glossary("falsy", "偽値")}}) が返される場合は、`||=` を使用する必要があります。それ以外の場合 (返値が {{jsxref("null")}} または {{jsxref("undefined")}} の場合) は `??=` 演算子を使用してください。 -

ブラウザの互換性

+## 仕様書 +{{Specifications}} +## ブラウザーの互換性 -{{Compat("javascript.operators.logical_or_assignment")}} +{{Compat}} -

関連情報

+## 関連情報 - +- [論理和演算子 (||)](/ja/docs/Web/JavaScript/Reference/Operators/Logical_OR) +- [Null 合体演算子 (`??`)](/ja/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator) +- [ビット論理和代入演算子 (`|=`)](/ja/docs/Web/JavaScript/Reference/Operators/Bitwise_OR_assignment) +- {{Glossary("Truthy", "真値")}} +- {{Glossary("Falsy", "偽値")}} diff --git a/files/ja/web/javascript/reference/operators/multiplication_assignment/index.md b/files/ja/web/javascript/reference/operators/multiplication_assignment/index.md index 973bb7c74b..2824916583 100644 --- a/files/ja/web/javascript/reference/operators/multiplication_assignment/index.md +++ b/files/ja/web/javascript/reference/operators/multiplication_assignment/index.md @@ -7,6 +7,7 @@ tags: - 言語機能 - 演算子 - Reference +browser-compat: javascript.operators.multiplication_assignment translation_of: Web/JavaScript/Reference/Operators/Multiplication_assignment --- {{jsSidebar("Operators")}} @@ -15,47 +16,33 @@ translation_of: Web/JavaScript/Reference/Operators/Multiplication_assignment {{EmbedInteractiveExample("pages/js/expressions-multiplication-assignment.html")}} -
- - - ## 構文 -
Operator: x *= y
-Meaning:  x  = x * y
+```js +x *= y // x = x * y +``` ## 例 -

乗算代入の使用

+### 乗算代入の使用 -
// 次の変数を想定
+```js
+// 次の変数を想定
 //  bar = 5
 
 bar *= 2     // 10
-bar *= 'foo' // NaN
- -

仕様

- - - - - - - - - - -
仕様
{{SpecName('ESDraft', '#sec-assignment-operators', 'Assignment operators')}}
+bar *= 'foo' // NaN +``` -

ブラウザーの互換性

+## 仕様書 +{{Specifications}} +## ブラウザーの互換性 -{{Compat("javascript.operators.multiplication_assignment")}} +{{Compat}} -

関連項目

+## 関連情報 - +- [JavaScript ガイドの代入演算子](/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#assignment) +- [乗算演算子](/ja/docs/Web/JavaScript/Reference/Operators/Multiplication) diff --git a/files/ja/web/javascript/reference/operators/remainder_assignment/index.md b/files/ja/web/javascript/reference/operators/remainder_assignment/index.md index 788c898863..c518fd7989 100644 --- a/files/ja/web/javascript/reference/operators/remainder_assignment/index.md +++ b/files/ja/web/javascript/reference/operators/remainder_assignment/index.md @@ -7,6 +7,7 @@ tags: - 言語機能 - 演算子 - Reference +browser-compat: javascript.operators.remainder_assignment translation_of: Web/JavaScript/Reference/Operators/Remainder_assignment --- {{jsSidebar("Operators")}} @@ -15,48 +16,34 @@ translation_of: Web/JavaScript/Reference/Operators/Remainder_assignment {{EmbedInteractiveExample("pages/js/expressions-remainder-assignment.html")}} -
- - - ## 構文 -
Operator: x %= y
-Meaning:  x  = x % y
+```js +x %= y // x = x % y +``` ## 例 -

剰余代入の使用

+### 剰余代入の使用 -
// 以下の変数を想定
+```js
+// 以下の変数を想定
 //  bar = 5
 
 bar %= 2     // 1
 bar %= 'foo' // NaN
-bar %= 0     // NaN
- -

仕様

- - - - - - - - - - -
仕様
{{SpecName('ESDraft', '#sec-assignment-operators', 'Assignment operators')}}
+bar %= 0 // NaN +``` -

ブラウザーの互換性

+## 仕様書 +{{Specifications}} +## ブラウザーの互換性 -{{Compat("javascript.operators.remainder_assignment")}} +{{Compat}} -

関連項目

+## 関連情報 - +- [JavaScript ガイドの代入演算子](/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#assignment) +- [剰余演算子](/ja/docs/Web/JavaScript/Reference/Operators/Remainder) diff --git a/files/ja/web/javascript/reference/operators/right_shift_assignment/index.md b/files/ja/web/javascript/reference/operators/right_shift_assignment/index.md index be17efee9c..fb30c2d912 100644 --- a/files/ja/web/javascript/reference/operators/right_shift_assignment/index.md +++ b/files/ja/web/javascript/reference/operators/right_shift_assignment/index.md @@ -7,55 +7,42 @@ tags: - 言語機能 - 演算子 - Reference +browser-compat: javascript.operators.right_shift_assignment translation_of: Web/JavaScript/Reference/Operators/Right_shift_assignment --- {{jsSidebar("Operators")}} -右シフト代入演算子 (`>>=`) は、指定された量のビットを右に移動し、結果を変数に代入します。 +右シフト代入演算子 (`>>=`) は、指定された数だけビットを右に移動し、結果を変数に代入します。 {{EmbedInteractiveExample("pages/js/expressions-right-shift-assignment.html")}} -
- - - ## 構文 -
Operator: x >>= y
-Meaning:  x   = x >> y
+```js +x >>= y // x = x >> y +``` ## 例 -

右シフト代入の使用

+### 右シフト代入の使用 -
let a = 5; //   (00000000000000000000000000000101)
-a >>= 2;   // 1 (00000000000000000000000000000001)
+```js
+let a = 5; //   (00000000000000000000000000000101)
+a >>= 2;   // 1 (00000000000000000000000000000001)
 
 let b = -5; //  (-00000000000000000000000000000101)
-b >>= 2;  // -2 (-00000000000000000000000000000010)
- -

仕様

- - - - - - - - - - -
仕様
{{SpecName('ESDraft', '#sec-assignment-operators', 'Assignment operators')}}
+b >>= 2; // -2 (-00000000000000000000000000000010) +``` -

ブラウザー実装状況

+## 仕様書 +{{Specifications}} +## ブラウザーの互換性 -{{Compat("javascript.operators.right_shift_assignment")}} +{{Compat}} -

関連項目

+## 関連情報 - +- [JavaScript ガイドの代入演算子](/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#assignment) +- [右シフト演算子](/ja/docs/Web/JavaScript/Reference/Operators/Right_shift) diff --git a/files/ja/web/javascript/reference/operators/subtraction_assignment/index.md b/files/ja/web/javascript/reference/operators/subtraction_assignment/index.md index fa5c3b591a..5a0f431797 100644 --- a/files/ja/web/javascript/reference/operators/subtraction_assignment/index.md +++ b/files/ja/web/javascript/reference/operators/subtraction_assignment/index.md @@ -7,6 +7,7 @@ tags: - 言語機能 - 演算子 - Reference +browser-compat: javascript.operators.subtraction_assignment translation_of: Web/JavaScript/Reference/Operators/Subtraction_assignment --- {{jsSidebar("Operators")}} @@ -15,47 +16,33 @@ translation_of: Web/JavaScript/Reference/Operators/Subtraction_assignment {{EmbedInteractiveExample("pages/js/expressions-subtraction-assignment.html")}} -
- - - ## 構文 -
Operator: x -= y
-Meaning:  x  = x - y
+```js +x -= y // x = x - y +``` ## 例 -

減算代入の使用

+### 減算代入の使用 -
// 次の変数を想定
+```js
+// 次の変数を想定
 //  bar = 5
 
 bar -= 2     // 3
-bar -= 'foo' // NaN
- -

仕様

- - - - - - - - - - -
仕様
{{SpecName('ESDraft', '#sec-assignment-operators', 'Assignment operators')}}
+bar -= 'foo' // NaN +``` -

ブラウザーの互換性

+## 仕様書 +{{Specifications}} +## ブラウザーの互換性 -{{Compat("javascript.operators.subtraction_assignment")}} +{{Compat}} -

関連項目

+## 関連情報 - +- [JavaScript ガイドの代入演算子](/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#assignment) +- [減算演算子](/ja/docs/Web/JavaScript/Reference/Operators/Subtraction) diff --git a/files/ja/web/javascript/reference/operators/unsigned_right_shift_assignment/index.md b/files/ja/web/javascript/reference/operators/unsigned_right_shift_assignment/index.md index 2808c9b9ae..4d8cccb022 100644 --- a/files/ja/web/javascript/reference/operators/unsigned_right_shift_assignment/index.md +++ b/files/ja/web/javascript/reference/operators/unsigned_right_shift_assignment/index.md @@ -7,55 +7,42 @@ tags: - 言語機能 - 演算子 - Reference +browser-compat: javascript.operators.unsigned_right_shift_assignment translation_of: Web/JavaScript/Reference/Operators/Unsigned_right_shift_assignment --- {{jsSidebar("Operators")}} -符号なし右シフト代入演算子 (`>>>=`) は、指定された量のビットを右に移動し、結果を変数に割り当てます。 +符号なし右シフト代入演算子 (_`>>>=`_) は、指定された数だけビットを右に移動し、結果を変数に代入します。 {{EmbedInteractiveExample("pages/js/expressions-unsigned-right-shift-assignment.html")}} -
- - - ## 構文 -
Operator: x >>>= y
-Meaning:  x    = x >>> y
+```js +x >>>= y // x = x >>> y +``` ## 例 -

符号なし右シフト代入の使用

+### 符号なし右シフト代入の使用 -
let a = 5; //   (00000000000000000000000000000101)
-a >>>= 2;  // 1 (00000000000000000000000000000001)
+```js
+let a = 5; //   (00000000000000000000000000000101)
+a >>>= 2;  // 1 (00000000000000000000000000000001)
 
 let b = -5; // (-00000000000000000000000000000101)
-b >>>= 2;   // 1073741822 (00111111111111111111111111111110)
- -

仕様

- - - - - - - - - - -
仕様
{{SpecName('ESDraft', '#sec-assignment-operators', 'Assignment operators')}}
+b >>>= 2; // 1073741822 (00111111111111111111111111111110) +``` -

ブラウザーの互換性

+## 仕様書 +{{Specifications}} +## ブラウザーの互換性 -{{Compat("javascript.operators.unsigned_right_shift_assignment")}} +{{Compat}} -

関連項目

+## 関連情報 - +- [JavaScript ガイドの代入演算子](/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#assignment) +- [符号なし右シフト演算子](/ja/docs/Web/JavaScript/Reference/Operators/Unsigned_right_shift) -- cgit v1.2.3-54-g00ecf