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’articleAuteur(s)
-
Christian Queinnec : Professeur émérite de l’UPMC
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.
VERSIONS
- Version archivée 1 de mars 1979 par Georges GARDARIN, Richard GOMIEZ DE CÉDRON
DOI (Digital Object Identifier)
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
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 PAGE8.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 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
Générateur
BIBLIOGRAPHIE
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
ANNEXES
Node https://nodejs.org/
Babel.js http://babeljs.io/
MongoDB https://www.mongodb.org/
JQuery https://jquery.com/
lodash https://github.com/lodash/lodash
Rhino https://github.com/mozilla/rhino
ES6 compatibility https://kangax.github.io/compat-table/es6/
HAUT DE PAGECet 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