Présentation

Article

1 - HISTORIQUE ET EMPLOIS

2 - SYNTAXE

3 - VALEURS

4 - INSTRUCTIONS

5 - ENVIRONNEMENT GLOBAL

6 - HÉRITAGE ET PROTOTYPES

7 - CONCURRENCE

8 - GÉNÉRATEUR

9 - CONCLUSIONS

Article de référence | Réf : H3120 v2

Générateur
Javascript

Auteur(s) : Christian Queinnec

Date de publication : 10 févr. 2017

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

RÉSUMÉ

Javascript est un langage de programmation pour les applications Web. Quoique assez jeune, puisque né en 1995, l’essor du Web a conféré à Javascriptune position dominante tant dans les navigateurs que maintenant côté serveurs. Cet article présente ce langage dans sa version standardisée de 2015.

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

Auteur(s)

INTRODUCTION

Javascript est désormais le langage du Web tant du côté des serveurs que du côté des navigateurs qu’il s’exécute sur téléphone, tablette ou ordinateur. Cet article décrit synthétiquement le langage (dans sa version ECMAScript 2015) et ses principales spécificités afin de permettre aux lecteurs, ayant une certaine pratique de l’informatique, d’appréhender les caractéristiques majeures de ce langage de programmation. Tout ne sera bien évidemment pas dit (la norme fait 566 pages) mais l’essentiel le sera.

Les exemples figurant dans cet article n’ont pas une tonalité uniforme, ils varient les styles, emploient parfois des caractéristiques en avance ou des caractéristiques mineures non nécessairement détaillées dans le texte, mais qui illustrent l’éventail des possibilités qu’offre ECMAScript 2015.

Cet article est réservé aux abonnés.
Il vous reste 94% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

VERSIONS

Il existe d'autres versions de cet article :

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v2-h3120


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Présentation

8. Générateur

Parmi les avancées d’ECMAScript 2015, on trouve les générateurs : des sortes de fonctions avec un état de contrôle persistant, pouvant être reprises plusieurs fois et rendre plusieurs résultats. Un générateur est défini avec un nouveau mot-clé : function* et il utilise le mot-clé yield pour interagir avec son appelant.

8.1 Générateur linéaire

Un premier exemple illustrant les pauses qui s’opèrent dans le générateur et les différentes reprises est présenté à la figure 50 a.

C’est le premier appel à next qui démarre l’exécution du générateur qui s’arrête au premier yield et renvoie comme résultat un objet dont la propriété value est la valeur de l’expression qui suit yield. Lors du second appel à next, l’exécution du générateur reprend là où elle s’était arrêtée et s’interrompt au second yield. Le troisième appel à next prend un argument qui devient la valeur de l’expression yield 2 et se trouve donc stockée dans la variable trois. Invoquer une quatrième fois next conduit à exécuter return ce qui interrompt le générateur ce que l’on peut vérifier à l’aide de la propriété done.

HAUT DE PAGE

8.2 Générateur bouclant

On le voit, le générateur possède un état interne qui lui permet d’arrêter puis de reprendre son exécution. Un générateur peut ne pas être linéaire et placer des yield au sein de boucle infinie. La figure 50 b présente un exemple qui calcule la suite de Fibonacci (une suite définie par f 0 = f 1 = 1 et fn +2 = fn +1 + fn ).

Dans l’exemple de la figure 50 b, le premier appel g.next() exécute le corps du générateur jusqu’au premier yield. Le second appel g.next(1) demande le premier nombre de Fibonacci non encore calculé...

Cet article est réservé aux abonnés.
Il vous reste 94% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Générateur
Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - SELF UNGAR (D.), SMITH (R.B.) -   Self : The Power of Simplicity.  -  OOPSLA ’87 Conference Proceedings, pp. 227-241, Orlando, FL, October 1987

NORMES

  • ECMAScript® 2016 language specification - ECMA-262 - 2016

  • IEEE Standard for the Scheme Programming Language - IEEE Std 1178-1990 - 1990

  • Information technology Universal Coded Character Set (UCS) - ISO/IEC 10646 : 2014 - 2014

  • Standard for Binary Floating – Point Arithmetic - IEEE 754 - 2008

Cet article est réservé aux abonnés.
Il vous reste 94% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS