Logo JavaScript / ECMAScript : Le langage de ES3 à ESNext

Formation JavaScript / ECMAScript : Le langage de ES3 à ESNext

JavaScript a été créé en 1995 par Netscape. A l’origine conçu comme un langage de script léger accompagnant Java, il le remplace aujourd’hui dans de nombreux domaines. Une norme appelée ECMAScript est créé en 1997, elle rend le langage industriel avec ECMAScript 6 ou ECMAScript 2015. Une nouvelle version d’ECMAScript sort désormais chaque année au mois de juin. Cette formation présente les principales syntaxe et API du language. Elle accorde un grand intérêt à la programmation asynchrone qui pose souvent des problèmes de performance et de maintenabilité du code. Enfin elle introduit TypeScript qui est de plus en plus utilisé sur des projets d’envergure et qui facilite le travail collaboratif et la détection d’erreurs.

Objectifs pédagogiques / Compétences visées

  • Développer des programmes en JavaScript
  • Comprendre les nouveaux API et nouvelles syntaxes
  • Connaître les différences entre le modèle objet de JavaScript et celui d'un language comme Java
  • Structurer proprement du code asynchrone
  • Identifier les projets pour lesquels TypeScript serait adapté

Pré-requis

  • Maitrise d'un langage de programmation
  • Notions de programmation orientée objet

Public

  • Développeurs
  • Chefs de projets

Programme

Jour 1

Introduction

  • Les IDE JavaScript : Visual Studio Code, WebStorm, EditorConfig
  • Historique et documentation
  • Fonctionnement d’un moteur JavaScript : interpretation, compilation JIT
  • Compatibilité des navigateurs, mode strict, transpilers, polyfills

Syntaxe et API

  • Types primitifs : boolean, number, string
  • Types objets : array, object, function
  • Types spéciaux : undefined, null
  • Variables et portées : var, let, const
  • Les opérateurs et structures de contrôle
  • Les API du langage : String, Array, RegExp

Fonctions

  • Déclaration : function declaration, anonymous function expression, named function expression
  • Paramètres : nombre, options, valeur par défaut, fonctions variadiques
  • Gestion d’erreurs, exceptions
  • Scope et closure
  • Callbacks synchrones
  • Callbacks asynchrones et boucle d’événement
  • API Function : call, apply, bind

Jour 2

Programmation Orienté Objet

  • Modèle statique (classes en Java) vs Modèle dynamique (dictionnaires en Java)
  • Extensibilité des objets, get/set, defineProperty
  • Object Literal et JSON
  • Factory Function
  • Constructor Function et Prototype
  • Héritage

ECMAScript 6 / ECMAScript 2015

  • Portées de bloc : let, const
  • Default Params
  • Rest, Spread operators
  • Shorthand, method, computed properties
  • Template strings
  • Déstructuration des tableaux et des objets
  • Classes, héritage, super, static
  • Itérables, boucle for .. of
  • Générateurs, symboles
  • Modules ECMAScript
  • Nouveaux API : Map, Set, Reflect, Proxy, Object, String, Array...

ECMAScript 7, 8, 9, 10, 11, ESNext

  • ES7 / ES2016 : Exponentiation, Array.prototype.includes
  • ES8 / ES2017 : Virgules finales, async / await, Object.values/entries, String Padding, Atomics
  • ES9 / ES2018 : Object Rest/Spread, Nouveautés RegExp, Promise.prototype.finally...
  • ES10 / ES2019 : Optional catch binding, Array.prototype.{flat,flatMap}...
  • ESNext : le futur de JavaScript, TC39, processus de normalisation

Jour 3

Programmation asynchrone

  • Boucles d’événements, files d'attentes
  • Utiliser this avec des callbacks sans danger
  • Callback Hell / Pyramid of Doom

Structurer son code Asynchrone

  • La bibliothèque Async
  • Les Promesses
  • Coroutine avec les Générateurs
  • Fonctions asynchrones (async / await)
  • Les Observables (RxJS)

TypeScript, une surcouche de JavaScript qui s’approche de Java

  • Un surensemble de ECMAScript
  • Typage statique
  • Interfaces
  • Comportements différents d’ECMAScript
  • Décorateurs

Moyens pédagogiques et techniques

  • Formateur validé par nos équipes techniques et pédagogiques
  • Salle de formation informatisée
  • Support de cours numérique

Suivi et appréciation des résultats

  • Questions orales ou écrites (QCM)
  • Exercices pratiques
  • Formulaires d'évaluation
Dernière modification le 07/03/2020