Formation Javascript – Programmation avancée
- Référence : DEJVS002
- Durée : 21 heures
- Certification : Non
- Eligible CPF : Non
CONNAISSANCES PREALABLES
- Avoir suivi le cours DEJVS001 - JavaScript - Fondamentaux" ou avoir une connaissance pratique du langage JavaScript
PROFIL DES STAGIAIRES
- Développeurs, architectes et chefs de projets techniques
OBJECTIFS
- Utiliser tous les outils de débogage à disposition
- 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
- Mémoriser jQuery
- Identifier les différences avec Node.js et expliquer le rôle de chacun.
METHODES PEDAGOGIQUES
- 6 à 12 personnes maximum par cours, 1 poste de travail par stagiaire
- Remise d’une documentation pédagogique papier ou numérique pendant le stage
- La formation est constituée d’apports théoriques, d’exercices pratiques et de réflexions
METHODES D'EVALUATION DES ACQUIS
- Auto-évaluation des acquis par le stagiaire via un questionnaire
- Attestation de fin de stage adressée avec la facture
FORMATEUR
Consultant-Formateur expert Développement Internet
CONTENU DU COURS Développement Internet
1 - Maîtrise des fonctions de "debug" dans les IDE et les navigateurs
- Accès aux fenêtres de débogage depuis les extensions des principaux navigateurs (Chrome, Edge, FireFox)
- Configuration de Visual Studio Code afin de déboguer depuis l’IDE
2 - 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
3 - Pièges du langage
- Typage faible
- Hoisting
- Contexte et variables globales
- Changement de contexte
4 - Programmation objet
- Prototype et __proto__
- Visibilité
- Diverses façons d’hériter
- Valeur de "this" dans un objet
- Constructeurs
- Différentes façons de créer des objets
5 - Importance de la modularisation
- Créer un module en JavaScript
- Utilisation des modules
6 - Programmation fonctionnelle
- Fonctions : Anonymes
- Fonctions : Immédiates
- Fonctions : Internes
- Redéfinition
- Surcharge et mot-clé (arguments)
- Closure
7 - Structuration et qualité du code
- Séparation en multiple fichiers
- Qualité avec JSHint et JSLint
- Impacts des "closures" sur la lisibilité
- Asynchronous Module Definition (AMD)
- Définition de modules
- AMD avec Require.js
8 - 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
9 - Exploiter les API HTML 5 en JavaScript
- WebSockets
- WebWorkers
- JSON
- Solutions de stockage : IndexedDB
- Solutions de stockage : LocalStorage
- Validation des formulaires en JavaScript
10 - 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
11 - Evolutions récentes : ECMAScript 6 et 7
- ECMAScript 6 et ses nouveautés : Classes
- ECMAScript 6 et ses nouveautés : Modules
- ECMAScript 6 et ses nouveautés : Fonctions fléchées
- ECMAScript 6 et ses nouveautés : Promise
- ECMAScript 6 et ses nouveautés : Nouvelles méthodes de "Object"