Objectifs pédagogiques / Compétences visées
- Décrire les contextes d'exécution
- Structurer le code JavaScript en modules
- Implémenter les concepts objets en JavaScript et les concepts fonctionnels
- Identifier les aspects avancés des "closures" et les promises.
Niveau requis
Avoir suivi le cours JVS-IN "JavaScript" ou avoir une connaissance pratique du langage JavaScript.
Public concerné
Développeurs, architectes et chefs de projets techniques.
Programme
Jour 1
Rappels importants du langage
- Les éléments de premier ordre dans JavaScript
- La portée des données
- Les fonctions
- Objets ou fonctions ?
- Le débogage avec les meilleurs outils actuels
Pièges du langage
- Typage faible
- "Hoisting"
- Contexte et variables globales
- Changement de contexte
Programmation objet
- Différentes façons de créer des objets
- Constructeurs
- valeur de "this" dans un objet
- Prototype et __prototype
- Diverses façons d'hériter
- Visibilité
Exemples de travaux pratiques (à titre indicatif)
- Conception d'une application qui exploite les fonctions
- Transformation de l'application, permettant d'exploiter les objets et l'héritage
Jour 2
Importance de la modularisation
- Créer un module en JavaScript
- Utilisation des modules
Programmation fonctionnelle
- Fonctions anonymes
- Fonctions immédiates
- Fonctions internes
- Redéfinition
- Surcharge et mot-clé (arguments)
- Closure
Structuration et qualité du code
- Séparation en multiple fichiers
- Définition de modules
- Asynchronous Module Definition (AMD)
- AMD avec Require.js
- Impacts des "closures" sur la lisibilité
- Qualité avec JSHint et JSLint
Exemples de travaux pratiques (à titre indicatif)
- Modularisation avec Require.js de l'application développée le jour précédent
- Utilisation des outils de Lint
Jour 3
Evolutions récentes : ECMAScript 6 et 7
- Présentation des langages dérivés de JavaScript
- TypeScript
- Dart
- CoffeeScript
- ECMAScript 6 et ses nouveautés
- Classes
- Modules
- Fonctions fléchées
- Promise
- Nouvelles méthodes de "Object"...
Frontière entre JavaScript et HTML 5
- Validation des formulaires en JavaScript
- Solutions de stockage
- LocalStorage
- IndexedDB
- JSON
- Web Sockets
- Web Workers
JavaScript et Node.js
- Différences dans les langages
- Asynchronisme
- REST serveur en Node.js et REST client en JavaScript
- Présentation d'une solution Web 100% JavaScript
Exemples de travaux pratiques (à titre indicatif)
- Exploitation des API de HTML 5 depuis JavaScript
- Utilisation des dernières fonctionnalités de ES7 et 8, avec l'asynchronisme (wait/async), promises
- Intégration d'un serveur simple Node.js dans la solution
Certification (en option)
- Prévoir l'achat de la certification en supplément
- L'examen (en français) sera passé le dernier jour, à l'issue de la formation et s'effectuera en ligne
- Il s'agit d'un QCM dont la durée moyenne est d'1h30 et dont le score obtenu attestera d'un niveau de compétence
- La certification n'est plus éligible au CPF depuis le 31/12/2021, mais permettra néanmoins de valider vos acquis
Modalités d’évaluation des acquis
- En cours de formation, par des études de cas ou des travaux pratiques
- Et, en fin de formation, par un questionnaire d'auto-évaluation ou une certification (M2i ou éditeur)