Logo JavaScript / ECMAScript : Le langage de ES3 à ESNext

Formation JavaScript / ECMAScript : Le langage de ES3 à ESNext

ECMAScript est un standard de script de programmation pour le Web. Il définit les règles et les spécifications pour la syntaxe, les types de données, les structures de contrôle de flux et les fonctionnalités de programmation de haut niveau pour les langages de script utilisés sur le Web. ECMAScript est souvent utilisé de manière interchangeable avec le terme "JavaScript", qui est un langage de script populaire qui a été conçu pour être compatible avec les spécifications ECMAScript. Cependant, il existe d'autres langages de script qui sont également conformes aux spécifications ECMAScript, tels que JScript et ActionScript. ECMAScript est maintenu et développé par le Technical Committee 39 (TC39) de l'ECMA International, une organisation de normalisation de l'industrie de l'informatique. Les nouvelles versions de ECMAScript sont publiées tous les ans et ajoutent de nouvelles fonctionnalités et améliorations au langage de script. La dernière version en date est ECMAScript 2022 (ES13).

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 13/01/2023