M2I FORMATION : 04. JavaScript - Programmation avancée
Organisme
92400 COURBEVOIEVoir toutes ses formationsAutres organismes proposant cette formation
Durée
Modalités
- Classe virtuelle
- Présentiel
L’évaluation des acquis se fait en cours de formation, par des études de cas ou des travaux pratiques et, en fin de formation, par un questionnaire
Prix
Public
Développeurs Web, architectes web, chefs de projet, webmasters…
Pré-requis
- Avoir des connaissances pratiques en JavaScript, HTML et CSS.
- Posséder des connaissances de base de XML.
Objectifs pédagogiques
- Découvrir les concepts avancés JavaScript ES5
- Mettre en pratique la Programmation Orientée Objet
- Maîtriser l'environnement de débogage
- Mettre en œuvre le framework JavaScript jQuery
- Manipuler les API JavaScript HTML5
- Appréhender la notion de JavaScript côté serveur avec Node.js
Programme détaillé
Jour 1 matin
§ Maîtrise des fonctions de Debug dans les IDE et les navigateurs
Configuration de Visual Studio Code afin de débogage depuis l’IDE.
Accès aux fenêtres de débogage depuis les extensions des principaux navigateurs (Chrome, Edge, FireFox)
Exemples de travaux pratiques (à titre indicatif)
Sur la base d’un programme intégrant les principales structures de JavaScript, utilisation des principaux outils de debogage
§ 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
Jour 1 après-midi
§ 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é
Jour 2 matin
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
§ 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
Jour 2 après-midi
§ 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
§ L'héritage jQuery
Bases de jQuery
Exploitation des sélecteurs en jQuery
Intérêts de jQuery par rapport JavaScript
Les composants graphiques de jQuery
Jour 3 matin
§ Exploiter les API HTML5 en JavaScript
Validation des formulaires en JavaScript
Solutions de stockage
- LocalStorage
- IndexedDB
JSON
Web Sockets
Web Workers
Jour 3 après-midi
§ 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
§ Evolutions récentes : ECMAScript 6 et 7
ECMAScript 6 et ses nouveautés
- Classes
- Modules
- Fonctions fléchées
- Promise
- Nouvelles méthodes de "Object"...