From bf8e099b9c8b3c60d60b3712b4fc97b052c39887 Mon Sep 17 00:00:00 2001 From: julieng Date: Tue, 3 Aug 2021 08:03:23 +0200 Subject: convert content to md --- .../global_objects/symbol/iterator/index.md | 118 +++++++++------------ 1 file changed, 49 insertions(+), 69 deletions(-) (limited to 'files/fr/web/javascript/reference/global_objects/symbol/iterator') diff --git a/files/fr/web/javascript/reference/global_objects/symbol/iterator/index.md b/files/fr/web/javascript/reference/global_objects/symbol/iterator/index.md index 2b3d9bf367..7b3abbbe88 100644 --- a/files/fr/web/javascript/reference/global_objects/symbol/iterator/index.md +++ b/files/fr/web/javascript/reference/global_objects/symbol/iterator/index.md @@ -10,50 +10,48 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Symbol/iterator original_slug: Web/JavaScript/Reference/Objets_globaux/Symbol/iterator --- -
{{JSRef}}
+{{JSRef}} -

Le symbole Symbol.iterator définit l'itérateur par défaut d'un objet. C'est l'itérateur qui sera utilisé par for...of.

+Le symbole **`Symbol.iterator`** définit l'itérateur par défaut d'un objet. C'est l'itérateur qui sera utilisé par [`for...of`](/fr/docs/Web/JavaScript/Reference/Instructions/for...of). -
{{EmbedInteractiveExample("pages/js/symbol-iterator.html")}}
+{{EmbedInteractiveExample("pages/js/symbol-iterator.html")}} +## Description +Lorsqu'on doit itérer sur un objet (par exemple avec une boucle `for..of`), sa méthode `@@iterator` est appelée sans argument et l'itérateur renvoyé par la méthode est utilisé pour récupérer les valeurs sur lesquelles itérer. -

Description

+Certains types natifs possèdent un comportement par défaut pour l'itération, d'autres types (tels qu'{{jsxref("Object")}}) n'ont pas de tel comportement. Les types natifs qui disposent d'une méthode `@@iterator` sont : -

Lorsqu'on doit itérer sur un objet (par exemple avec une boucle for..of), sa méthode @@iterator est appelée sans argument et l'itérateur renvoyé par la méthode est utilisé pour récupérer les valeurs sur lesquelles itérer.

+- {{jsxref("Array.@@iterator", "Array.prototype[@@iterator]()")}} +- {{jsxref("TypedArray.@@iterator", "TypedArray.prototype[@@iterator]()")}} +- {{jsxref("String.@@iterator", "String.prototype[@@iterator]()")}} +- {{jsxref("Map.@@iterator", "Map.prototype[@@iterator]()")}} +- {{jsxref("Set.@@iterator", "Set.prototype[@@iterator]()")}} -

Certains types natifs possèdent un comportement par défaut pour l'itération, d'autres types (tels qu'{{jsxref("Object")}}) n'ont pas de tel comportement. Les types natifs qui disposent d'une méthode @@iterator sont :

+Pour plus d'informations, voir aussi [la page sur les protocoles d'itération](/fr/docs/Web/JavaScript/Reference/Les_protocoles_iteration). - +{{js_property_attributes(0,0,0)}} -

Pour plus d'informations, voir aussi la page sur les protocoles d'itération.

+## Exemples -

{{js_property_attributes(0,0,0)}}

+### Itérables définis par l'utilisateur -

Exemples

+Il est possible de construire un itérable de la façon suivante : -

Itérables définis par l'utilisateur

- -

Il est possible de construire un itérable de la façon suivante :

- -
var monItérable = {}
+```js
+var monItérable = {}
 monItérable[Symbol.iterator] = function* () {
     yield 1;
     yield 2;
     yield 3;
 };
 [...monItérable] // [1, 2, 3]
-
+``` -

On peut également définir ces itérables via des propriétés calculées dans des déclarations de classe ou dans des littéraux objets :

+On peut également définir ces itérables via des propriétés calculées dans des déclarations de classe ou dans des littéraux objets : -
class Toto {
+```js
+class Toto {
   *[Symbol.iterator] () {
     yield 1;
     yield 2;
@@ -70,52 +68,34 @@ const monObj = {
 
 [... new Toto] // [1, 2, 3]
 [... monObj]   // ["a", "b"]
-
+``` -

Itérables mal-formés

+### Itérables mal-formés -

Si la méthode @@iterator d'un itérable ne renvoie pas un itérateur, on dira que c'est un itérable mal-formé. Utiliser un tel itérable peut provoquer des erreurs lors de l'exécution :

+Si la méthode `@@iterator` d'un itérable ne renvoie pas un itérateur, on dira que c'est un itérable mal-formé. Utiliser un tel itérable peut provoquer des erreurs lors de l'exécution : -
var itérableMalFormé = {}
-itérableMalFormé[Symbol.iterator] = () => 1
+```js
+var itérableMalFormé = {}
+itérableMalFormé[Symbol.iterator] = () => 1
 [...itérableMalFormé] // TypeError: [] is not a function
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('ES2015', '#sec-symbol.iterator', 'Symbol.iterator')}}{{Spec2('ES2015')}}Définition initiale.
{{SpecName('ESDraft', '#sec-symbol.iterator', 'Symbol.iterator')}}{{Spec2('ESDraft')}}
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.Symbol.iterator")}}

- -

Voir aussi

- - +``` + +## Spécifications + +| Spécification | État | Commentaires | +| ---------------------------------------------------------------------------------------- | ---------------------------- | -------------------- | +| {{SpecName('ES2015', '#sec-symbol.iterator', 'Symbol.iterator')}} | {{Spec2('ES2015')}} | Définition initiale. | +| {{SpecName('ESDraft', '#sec-symbol.iterator', 'Symbol.iterator')}} | {{Spec2('ESDraft')}} | | + +## Compatibilité des navigateurs + +{{Compat("javascript.builtins.Symbol.iterator")}} + +## Voir aussi + +- [Les protocoles d'itération](/fr/docs/Web/JavaScript/Reference/Les_protocoles_iteration) +- {{jsxref("Array.@@iterator", "Array.prototype[@@iterator]()")}} +- {{jsxref("TypedArray.@@iterator", "TypedArray.prototype[@@iterator]()")}} +- {{jsxref("String.@@iterator", "String.prototype[@@iterator]()")}} +- {{jsxref("Map.@@iterator", "Map.prototype[@@iterator]()")}} +- {{jsxref("Set.@@iterator", "Set.prototype[@@iterator]()")}} -- cgit v1.2.3-54-g00ecf