aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/javascript/reference/operators/yield_star_
diff options
context:
space:
mode:
authorjulieng <julien.gattelier@gmail.com>2021-08-03 08:03:23 +0200
committerSphinxKnight <SphinxKnight@users.noreply.github.com>2021-09-03 08:08:25 +0200
commitbf8e099b9c8b3c60d60b3712b4fc97b052c39887 (patch)
treec101746d082c9581c94f5937519c7d0e2f4af8cb /files/fr/web/javascript/reference/operators/yield_star_
parent844f5103992238c0c23203286dad16a466e89c97 (diff)
downloadtranslated-content-bf8e099b9c8b3c60d60b3712b4fc97b052c39887.tar.gz
translated-content-bf8e099b9c8b3c60d60b3712b4fc97b052c39887.tar.bz2
translated-content-bf8e099b9c8b3c60d60b3712b4fc97b052c39887.zip
convert content to md
Diffstat (limited to 'files/fr/web/javascript/reference/operators/yield_star_')
-rw-r--r--files/fr/web/javascript/reference/operators/yield_star_/index.md137
1 files changed, 59 insertions, 78 deletions
diff --git a/files/fr/web/javascript/reference/operators/yield_star_/index.md b/files/fr/web/javascript/reference/operators/yield_star_/index.md
index 0ce1a73abd..86ad5717d8 100644
--- a/files/fr/web/javascript/reference/operators/yield_star_/index.md
+++ b/files/fr/web/javascript/reference/operators/yield_star_/index.md
@@ -12,34 +12,33 @@ tags:
translation_of: Web/JavaScript/Reference/Operators/yield*
original_slug: Web/JavaScript/Reference/Opérateurs/yield*
---
-<div>{{jsSidebar("Operators")}}</div>
+{{jsSidebar("Operators")}}
-<p>Une <strong>expression <code>yield*</code></strong> est utilisée afin de déléguer le mécanisme d'itération/génération à un autre {{jsxref("Instructions/function*", "générateur")}} ou à un autre objet itérable.</p>
+Une **expression `yield*`** est utilisée afin de déléguer le mécanisme d'itération/génération à un autre {{jsxref("Instructions/function*", "générateur")}} ou à un autre objet itérable.
-<div>{{EmbedInteractiveExample("pages/js/expressions-yieldasterisk.html")}}</div>
+{{EmbedInteractiveExample("pages/js/expressions-yieldasterisk.html")}}
-<h2 id="Syntaxe">Syntaxe</h2>
+## Syntaxe
-<pre class="syntaxbox"> yield* [[expression]];</pre>
+ yield* [[expression]];
-<dl>
- <dt><code>expression</code></dt>
- <dd>L'expression qui renvoie un objet itérable.</dd>
-</dl>
+- `expression`
+ - : L'expression qui renvoie un objet itérable.
-<h2 id="Description">Description</h2>
+## Description
-<p>L'expression <code>yield*</code> itère sur l'opérande et génère chaque valeur générée par l'opérande.</p>
+L'expression `yield*` itère sur l'opérande et génère chaque valeur générée par l'opérande.
-<p>La valeur de l'expression <code>yield*</code> est la valeur renvoyée par l'itérateur lorsque celui est terminé (la propriété <code>done</code> vaut <code>true</code>).</p>
+La valeur de l'expression `yield*` est la valeur renvoyée par l'itérateur lorsque celui est terminé (la propriété `done` vaut `true`).
-<h2 id="Exemples">Exemples</h2>
+## Exemples
-<h3 id="Délégation_de_la_génération">Délégation de la génération</h3>
+### Délégation de la génération
-<p>Dans le code suivant, les valeurs générées par <code>g1()</code> sont renvoyées grâce aux appels à la fonction <code>next()</code>, comme pour celles renvoyées par <code>g2()</code>.</p>
+Dans le code suivant, les valeurs générées par `g1()` sont renvoyées grâce aux appels à la fonction `next()`, comme pour celles renvoyées par `g2()`.
-<pre class="brush: js">function* g1() {
+```js
+function* g1() {
yield 2;
yield 3;
yield 4;
@@ -58,13 +57,14 @@ console.log(iterator.next()); // { value: 3, done: false }
console.log(iterator.next()); // { value: 4, done: false }
console.log(iterator.next()); // { value: 5, done: false }
console.log(iterator.next()); // { value: undefined, done: true }
-</pre>
+```
-<h3 id="Les_autres_objets_itérables">Les autres objets itérables</h3>
+### Les autres objets itérables
-<p><code>yield*</code> peut également être utilisé avec d'autres sortes d'itérables (chaînes, tableaux ou arguments) :</p>
+`yield*` peut également être utilisé avec d'autres sortes d'itérables (chaînes, tableaux ou arguments) :
-<pre class="brush: js">function* g3() {
+```js
+function* g3() {
yield* [1, 2];
yield* "34";
yield* Array.from(arguments);
@@ -78,13 +78,15 @@ console.log(iterator.next()); // { value: "3", done: false }
console.log(iterator.next()); // { value: "4", done: false }
console.log(iterator.next()); // { value: 5, done: false }
console.log(iterator.next()); // { value: 6, done: false }
-console.log(iterator.next()); // { value: undefined, done: true }</pre>
+console.log(iterator.next()); // { value: undefined, done: true }
+```
-<h3 id="La_valeur_de_l'expression_yield*">La valeur de l'expression <code>yield*</code></h3>
+### La valeur de l'expression `yield*`
-<p><code>yield*</code> est une expression et non une instruction, elle est donc évaluée et fournit une valeur :</p>
+`yield*` est une expression et non une instruction, elle est donc évaluée et fournit une valeur :
-<pre class="brush: js">function* g4() {
+```js
+function* g4() {
yield* [1, 2, 3];
return "toto";
}
@@ -103,57 +105,36 @@ console.log(iterator.next()); // { value: 3, done: false }
console.log(iterator.next()); // { value: undefined, done: true },
// g4() renvoie{ value: "toto", done: true } at this point
-console.log(résultat); // "toto"</pre>
-
-<h2 id="Spécifications">Spécifications</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Spécification</th>
- <th scope="col">État</th>
- <th scope="col">Commentaires</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('ES2015', '#sec-generator-function-definitions-runtime-semantics-evaluation', 'Yield')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Définition initiale</td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-generator-function-definitions-runtime-semantics-evaluation', 'Yield')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td> </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
-
-<p>{{Compat("javascript.operators.yield_star")}}</p>
-
-<h2 id="Notes_relatives_à_Firefox">Notes relatives à Firefox</h2>
-
-<ul>
- <li>À partir de Gecko 33 {{geckoRelease(33)}}, l'analyse de l'expression <code>yield</code> a été mise à jour pour être conforme aux spécifications ES2015 ({{bug(981599)}}) :
-
- <ul>
- <li>La restriction concernant les terminateurs de lignes est désormais implémentée. Il n'est pas autorisé d'avoir un terminateur de ligne entre "yield" et "*". Le code suivant lèvera une exception {{jsxref("SyntaxError")}}:
- <pre class="brush: js">function* toto() {
- yield
- *[];
-}</pre>
- </li>
- </ul>
- </li>
-</ul>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li><a href="/fr/docs/Web/JavaScript/Guide/Le_protocole_iterator">Le protocole itérateur</a></li>
- <li>L'instruction {{jsxref("Instruction/function*", "function*")}}</li>
- <li>L'expression {{jsxref("Opérateurs/function*", "function*")}}</li>
- <li>{{jsxref("Opérateurs/yield", "yield")}}</li>
-</ul>
+console.log(résultat); // "toto"
+```
+
+## Spécifications
+
+| Spécification | État | Commentaires |
+| ------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------- | ------------------- |
+| {{SpecName('ES2015', '#sec-generator-function-definitions-runtime-semantics-evaluation', 'Yield')}} | {{Spec2('ES2015')}} | Définition initiale |
+| {{SpecName('ESDraft', '#sec-generator-function-definitions-runtime-semantics-evaluation', 'Yield')}} | {{Spec2('ESDraft')}} |   |
+
+## Compatibilité des navigateurs
+
+{{Compat("javascript.operators.yield_star")}}
+
+## Notes relatives à Firefox
+
+- À partir de Gecko 33 {{geckoRelease(33)}}, l'analyse de l'expression `yield` a été mise à jour pour être conforme aux spécifications ES2015 ({{bug(981599)}}) :
+
+ - La restriction concernant les terminateurs de lignes est désormais implémentée. Il n'est pas autorisé d'avoir un terminateur de ligne entre "yield" et "\*". Le code suivant lèvera une exception {{jsxref("SyntaxError")}}:
+
+ ```js
+ function* toto() {
+ yield
+ *[];
+ }
+ ```
+
+## Voir aussi
+
+- [Le protocole itérateur](/fr/docs/Web/JavaScript/Guide/Le_protocole_iterator)
+- L'instruction {{jsxref("Instruction/function*", "function*")}}
+- L'expression {{jsxref("Opérateurs/function*", "function*")}}
+- {{jsxref("Opérateurs/yield", "yield")}}