From 3d9227f8d11cf28c9999054afa2d63b83ef38b3d Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Sun, 26 Sep 2021 00:07:38 +0900 Subject: Markdown へ変換するためにファイル名を変更 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logical_nullish_assignment/index.html | 89 ---------------------- .../operators/logical_nullish_assignment/index.md | 89 ++++++++++++++++++++++ 2 files changed, 89 insertions(+), 89 deletions(-) delete mode 100644 files/ja/web/javascript/reference/operators/logical_nullish_assignment/index.html create mode 100644 files/ja/web/javascript/reference/operators/logical_nullish_assignment/index.md (limited to 'files/ja/web/javascript/reference/operators/logical_nullish_assignment') diff --git a/files/ja/web/javascript/reference/operators/logical_nullish_assignment/index.html b/files/ja/web/javascript/reference/operators/logical_nullish_assignment/index.html deleted file mode 100644 index ba7ebab53d..0000000000 --- a/files/ja/web/javascript/reference/operators/logical_nullish_assignment/index.html +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: Null 合体代入 (??=) -slug: Web/JavaScript/Reference/Operators/Logical_nullish_assignment -tags: - - Assignment operator - - JavaScript - - Language feature - - Logical Operator - - Operator - - Reference -translation_of: Web/JavaScript/Reference/Operators/Logical_nullish_assignment ---- -
{{jsSidebar("Operators")}}
- -

Null 合体代入 (x ??= y) 演算子は、x が {{Glossary("nullish")}} (null または undefined) である場合にのみ代入を行います。

- -
{{EmbedInteractiveExample("pages/js/expressions-logical-nullish-assignment.html")}}
- - - -

構文

- -
expr1 ??= expr2
-
- -

説明

- -

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

- -

Null 合体演算子は左から右に評価され、次のルールを使って短絡評価の可能性があるかどうかテストされます。

- -

(null や undefined ではない式) ?? expr は、左辺が null でも undefined でもないことが証明されたら、左辺の式が短絡評価されます。

- -

短絡評価とは、上記の expr 部分が評価されないことを意味します。したがって、評価された場合の副作用は発生しません。(例えば、expr が関数呼び出しである場合、呼び出しは行われません。)

- -

Null 合体代入も短絡評価されます。これは、x ??= y が以下と等価であることを意味します。

- -
x ?? (x = y);
- -

そして、常に代入が行われる以下と等価ではありません。

- -
x = x ?? y;
-
- -

- -

Null 合体代入演算子の使用

- -
function config(options) {
-  options.duration ??= 100;
-  options.speed ??= 25;
-  return options;
-}
-
-config({ duration: 125 }); // { duration: 125, speed: 25 }
-config({}); // { duration: 100, speed: 25 }
-
- -

仕様

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

ブラウザの互換性

- - - -

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

- -

関連情報

- - 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 new file mode 100644 index 0000000000..d8d693ae0f --- /dev/null +++ b/files/ja/web/javascript/reference/operators/logical_nullish_assignment/index.md @@ -0,0 +1,89 @@ +--- +title: Null 合体代入 (??=) +slug: Web/JavaScript/Reference/Operators/Logical_nullish_assignment +tags: + - 代入演算子 + - JavaScript + - 言語機能 + - Logical Operator + - 演算子 + - Reference +translation_of: Web/JavaScript/Reference/Operators/Logical_nullish_assignment +--- +{{jsSidebar("Operators")}} + +Null 合体代入 (`x ??= y`) 演算子は、`x` が {{Glossary("nullish")}} (`null` または `undefined`) である場合にのみ代入を行います。 + +{{EmbedInteractiveExample("pages/js/expressions-logical-nullish-assignment.html")}} + + + +## 構文 + +
expr1 ??= expr2
+
+ +

説明

+ +

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

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

Null 合体代入演算子の使用

+ +
function config(options) {
+  options.duration ??= 100;
+  options.speed ??= 25;
+  return options;
+}
+
+config({ duration: 125 }); // { duration: 125, speed: 25 }
+config({}); // { duration: 100, speed: 25 }
+
+ +

仕様

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

ブラウザの互換性

+ + + +{{Compat("javascript.operators.logical_nullish_assignment")}} + +

関連情報

+ + -- cgit v1.2.3-54-g00ecf