From 5e85f24ca2d7a45d0a7269bd606dca6c2d94d8b3 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Mon, 28 Jun 2021 00:52:49 +0900 Subject: conflicting/Web/JavaScript/Reference/Operators/yield を削除し、正規版を更新 (#1215) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - conflicting/Web/JavaScript/Reference/Operators/yield はほとんど内容がないため削除 - 正規版を 2021/05/05 時点の英語版に同期 --- files/ja/_redirects.txt | 4 +- files/ja/_wikihistory.json | 6 -- .../reference/operators/yield/index.html | 8 -- .../reference/operators/yield/index.html | 93 +++++++++++++--------- 4 files changed, 56 insertions(+), 55 deletions(-) delete mode 100644 files/ja/conflicting/web/javascript/reference/operators/yield/index.html (limited to 'files') diff --git a/files/ja/_redirects.txt b/files/ja/_redirects.txt index d12d9c381d..7b40df7497 100644 --- a/files/ja/_redirects.txt +++ b/files/ja/_redirects.txt @@ -3112,7 +3112,7 @@ /ja/docs/JavaScript/Reference/Statements/var /ja/docs/Web/JavaScript/Reference/Statements/var /ja/docs/JavaScript/Reference/Statements/while /ja/docs/Web/JavaScript/Reference/Statements/while /ja/docs/JavaScript/Reference/Statements/with /ja/docs/Web/JavaScript/Reference/Statements/with -/ja/docs/JavaScript/Reference/Statements/yield /ja/docs/conflicting/Web/JavaScript/Reference/Operators/yield +/ja/docs/JavaScript/Reference/Statements/yield /ja/docs/Web/JavaScript/Reference/Operators/yield /ja/docs/JavaScript/Reference/文 /ja/docs/Web/JavaScript/Reference/Statements /ja/docs/JavaScript/Reference/文/for...of /ja/docs/Web/JavaScript/Reference/Statements/for...of /ja/docs/JavaScript/Same_origin_policy_for_JavaScript /ja/docs/Web/Security/Same-origin_policy @@ -5035,7 +5035,7 @@ /ja/docs/Web/JavaScript/Reference/Properties_Index /ja/docs/Web/JavaScript/Reference /ja/docs/Web/JavaScript/Reference/Reserved_Words /ja/docs/conflicting/Web/JavaScript/Reference/Lexical_grammar /ja/docs/Web/JavaScript/Reference/Statements/default /ja/docs/Web/JavaScript/Reference/Statements/switch -/ja/docs/Web/JavaScript/Reference/Statements/yield /ja/docs/conflicting/Web/JavaScript/Reference/Operators/yield +/ja/docs/Web/JavaScript/Reference/Statements/yield /ja/docs/Web/JavaScript/Reference/Operators/yield /ja/docs/Web/JavaScript/Reference/arrow_functions /ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions /ja/docs/Web/JavaScript/Reference/template_strings /ja/docs/Web/JavaScript/Reference/Template_literals /ja/docs/Web/JavaScript/Same_origin_policy_for_JavaScript /ja/docs/Web/Security/Same-origin_policy diff --git a/files/ja/_wikihistory.json b/files/ja/_wikihistory.json index 23abe2d6c6..be0b6686ef 100644 --- a/files/ja/_wikihistory.json +++ b/files/ja/_wikihistory.json @@ -49362,12 +49362,6 @@ "Potappo" ] }, - "conflicting/Web/JavaScript/Reference/Operators/yield": { - "modified": "2019-01-16T17:00:33.767Z", - "contributors": [ - "ethertank" - ] - }, "conflicting/Web/JavaScript/Reference/Operators_f71733c8e7001a29c3ec40d8522a4aca": { "modified": "2020-03-12T19:35:34.796Z", "contributors": [ diff --git a/files/ja/conflicting/web/javascript/reference/operators/yield/index.html b/files/ja/conflicting/web/javascript/reference/operators/yield/index.html deleted file mode 100644 index b2aad251c0..0000000000 --- a/files/ja/conflicting/web/javascript/reference/operators/yield/index.html +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: yield -slug: conflicting/Web/JavaScript/Reference/Operators/yield -translation_of: Web/JavaScript/Reference/Operators/yield -translation_of_original: Web/JavaScript/Reference/Statements/yield -original_slug: Web/JavaScript/Reference/Statements/yield ---- -

JavaScript 1.7 の新機能』、『イテレータとジェネレータ』 を参照して下さい。

diff --git a/files/ja/web/javascript/reference/operators/yield/index.html b/files/ja/web/javascript/reference/operators/yield/index.html index e0d0653718..2b2c68b691 100644 --- a/files/ja/web/javascript/reference/operators/yield/index.html +++ b/files/ja/web/javascript/reference/operators/yield/index.html @@ -8,40 +8,36 @@ tags: - JavaScript - Language feature - Operator - - ジェネレーター - - 反復処理 - - 演算子 - - 言語機能 +browser-compat: javascript.operators.yield translation_of: Web/JavaScript/Reference/Operators/yield ---
{{jsSidebar("Operators")}}
-

yield キーワードは、ジェネレーター関数 ({{jsxref("Statements/function*", "function*")}} または古いジェネレーター関数) のを一時停止したり再開したりするために使用します。

+

yield キーワードは、ジェネレーター関数 ({{jsxref("Statements/function*", "function*")}} または古いジェネレーター関数) を一時停止したり再開したりするために使用します。

{{EmbedInteractiveExample("pages/js/expressions-yield.html", "taller")}}
- +

構文

-

構文

- -
[rv] = yield [expression]
+
[rv] = yield [expression]
-
expression {{optional_inline}}
-
iterator プロトコル経由でジェネレーター関数が返す値を定義します。省略した場合、代わりに undefined が返されます。
-
rv {{optional_inline}}
-
-

ジェネレーターの実行を再開する next() メソッドに渡したオプションの値を受け取ります。

-
+
expression {{optional_inline}}
+
iterator プロトコル経由でジェネレーター関数が返す値を定義します。省略した場合、代わりに undefined が返されます。
+
rv {{optional_inline}}
+
+

ジェネレーターの実行を再開する next() メソッドに渡したオプションの値を受け取ります。

+
-

解説

+

解説

-

yield キーワードは、ジェネレーター関数の実行を一時停止し、ジェネレーターの呼び出し元に yield キーワードに続く値を戻します。これは、 return キーワードのジェネレーター版と考えることができます。

+

yield キーワードは、ジェネレーター関数の実行を一時停止し、ジェネレーターの呼び出し元に yield キーワードに続く値を返します。これは、 return キーワードのジェネレーター版と考えることができます。

yield はそれを含むジェネレーター関数の中で直接しか呼び出すことしかできません。呼び出し先の関数やコールバックから呼び出すことはできません。

-

yield キーワードはジェネレーターの next() メソッドを呼び出させ、 valuedone の2つのプロパティを持つ IteratorResult オブジェクトを返します。 value プロパティは yield 式の評価結果であり、 donefalse、すなわちジェネレーター関数が完全には完了していないことを示します。

+

yield キーワードはジェネレーターの next() メソッドを呼び出させ、 valuedone の 2 つのプロパティを持つ IteratorResult オブジェクトを返します。 value プロパティは yield 式の評価結果であり、 donefalse、すなわちジェネレーター関数が完全には完了していないことを示します。

yield 式によって実行が停止されると、ジェネレーターの next() メソッドが呼び出されるまで、ジェネレーターのコード実行は一時停止します。ジェネレーターの next() メソッドが呼ばれるたびに、ジェネレーターの実行が再開され、次のうちのいずれかに達するまで実行されます。

@@ -56,7 +52,13 @@ translation_of: Web/JavaScript/Reference/Operators/yield

ジェネレーターのコードパス、 yield 演算子、新しい開始値を {{jsxref("Generator.prototype.next()")}} に渡すことで指定することができる機能により、ジェネレーターは大きな力と制御を提供します。

-

+
+

警告: 残念ながら next() は非対称ですが、仕方がありません。常に現在中断している yield に値を送りますが、次の yield のオペランドを返します。

+
+ +

+ +

Using yield

次のコードはジェネレーター関数の定義例です。

@@ -75,30 +77,43 @@ console.log(appleStore.next()) // { value: 7, done: false } console.log(appleStore.next()) // { value: 5, done: false } console.log(appleStore.next()) // { value: undefined, done: true } -

仕様書

+

You can also send a value with next(value) into the generator. 'step' evaluates as a + return value in this syntax [rv] = yield + [expression]

+ +
function* counter(value) {
+ let step;
+
+ while (true) {
+   step = yield ++value;
+
+   if (step) {
+     value += step;
+   }
+ }
+}
+
+const generatorFunc = counter(0);
+console.log(generatorFunc.next().value);   // 1
+console.log(generatorFunc.next().value);   // 2
+console.log(generatorFunc.next().value);   // 3
+console.log(generatorFunc.next(10).value); // 14
+console.log(generatorFunc.next().value);   // 15
+console.log(generatorFunc.next(10).value); // 26
+ +

仕様書

- - - - - - - - - - - -
仕様書
{{SpecName('ESDraft', '#prod-YieldExpression', 'Yield')}}
+{{Specifications}} -

ブラウザーの互換性

+

ブラウザーの互換性

-

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

+

{{Compat}}

-

関連情報

+

関連情報

-- cgit v1.2.3-54-g00ecf