Cours JavaScript ES6 – Ultra Complet : De Débutant à
Expert
Module 1 : Introduction à JavaScript
1. Qu’est-ce que JavaScript et son rôle dans le Web
2. Historique et évolution du langage : ES5 → ES6 → ESNext
3. JS côté client vs côté serveur ([Link])
4. Inclusion de JS dans une page : <script>, async, defer, modules
5. Console et outils de développement (DevTools)
6. Premier script : alert, [Link], prompt, confirm
7. Bonnes pratiques de code et commentaires
Module 2 : Bases du langage
1. Variables et constantes : var, let, const
2. Types de données : number, string, boolean, null, undefined, symbol, bigint
3. Opérateurs : arithmétiques, logiques, comparaison, concaténation, ternaires,
opérateurs ES6 (??, ?.)
4. Instructions conditionnelles : if, else, else if, switch, opérateur ternaire
5. Boucles : for, while, do…while, for…of, for…in
6. Template literals et interpolation de chaînes
7. Conversion de types et coercition
Module 3 : Fonctions
1. Déclaration classique et expression de fonction
2. Fonctions fléchées (Arrow Functions)
3. Paramètres par défaut, rest parameters, spread operator
4. Scope : global, local, block
5. Hoisting et closures
6. IIFE (Immediately Invoked Function Expressions)
7. Callbacks et gestion de l’asynchrone basique
Module 4 : Tableaux et objets
1. Création, accès et modification
2. Méthodes ES6 : map, filter, reduce, find, some, every, forEach, includes, flat,
flatMap
3. Objets : création, propriétés, méthodes
4. Destructuration d’objets et tableaux
5. Spread et rest operators
6. [Link], [Link], [Link]
7. Immutabilité et bonnes pratiques
Module 5 : ES6 avancé
1. Classes ES6 : constructor, methods, inheritance, super
2. Modules ES6 : export, import, import dynamique
3. Symbol et iterables
4. Sets, Maps, WeakSet, WeakMap
5. Promises et gestion asynchrone
6. Template literals avancés et tagged templates
Module 6 : Programmation orientée objet (OOP)
1. Classes et objets
2. Héritage, polymorphisme et super
3. Méthodes statiques et getters/setters
4. Encapsulation avec #private fields
5. Prototypes et prototype chain
6. Design patterns JS : Singleton, Observer, Factory, Module Pattern, Revealing
Module
7. Mixins et composition
Module 7 : DOM (Document Object Model)
1. Sélection d’éléments : getElementById, querySelector, querySelectorAll,
getElementsByClassName, getElementsByTagName
2. Modification du DOM : textContent, innerHTML, attributes, classList, style
3. Création, insertion, suppression d’éléments
4. Gestion des événements : addEventListener, removeEventListener
5. Événements avancés : bubbling, capturing, delegation, [Link](),
[Link]()
6. Formulaires et validation côté client
7. Animation et manipulation du DOM via JS
Module 8 : BOM (Browser Object Model)
1. window, document, location, history, navigator
2. Gestion des timers : setTimeout, setInterval, clearTimeout, clearInterval
3. alert, prompt, confirm
4. scroll, innerHeight, innerWidth, screen
5. Cookies et stockage Web : localStorage, sessionStorage, IndexedDB
Module 9 : Asynchrone et API
1. Callbacks et gestion d’événements
2. Promises : création, then, catch, finally
3. Async / Await
4. Fetch API et XMLHttpRequest
5. Consommation d’API REST et JSON
6. Gestion des erreurs, timeouts et abort controller
7. Event loop, microtasks et macrotasks
Module 10 : Web APIs avancées
1. Geolocation API
2. Canvas API et animation 2D
3. Audio et Video API
4. Drag & Drop API
5. Web Workers
6. Intersection Observer API
7. Notifications et Web Push API
8. Service Workers (introduction)
Module 11 : Manipulation avancée du langage
1. Optional chaining et nullish coalescing
2. Generators et iterators
3. Proxy et Reflect
4. [Link] et custom iterables
5. Modules ES6 avancés : import dynamique, export par défaut et nommés
6. Patterns fonctionnels en JS (currying, composition, higher-order functions)
Module 12 : Gestion d’erreurs et qualité du code
1. try, catch, finally, throw
2. Création d’erreurs personnalisées
3. Debugging et console avancée
4. Linter et code style (ESLint)
5. Optimisation du code JS (réduction de reflows, recalculs, mémoire)
Module 13 : Tests et maintenance
1. Tests unitaires avec Jest, Mocha ou Jasmine
2. Tests fonctionnels et end-to-end (Cypress, Puppeteer)
3. Coverage et rapport de tests
4. TDD / BDD et bonnes pratiques
5. Documentation et commentaires professionnels
Module 14 : Performance et optimisation
1. Profiling avec DevTools
2. Optimisation DOM : virtual DOM, reflows et repaints
3. Debouncing et throttling
4. Lazy loading et code splitting
5. Optimisation mémoire et gestion des closures
6. Best practices ES6+ pour code rapide et maintenable
Module 15 : Projet pratique complet
1. Conception d’une application web complète (CRUD ou dashboard)
2. Manipulation complète du DOM et des événements
3. Consommation d’API REST et gestion asynchrone
4. Web Storage et IndexedDB
5. Sécurisation, tests et validation
6. Optimisation et déploiement