Module 1 — Fondations JavaScript et environnement de travail
- Rôle de JavaScript : navigateur, moteur JS, interactions, cycle de rendu
- Installer/configurer un environnement : éditeur, console, DevTools
- Syntaxe : variables (let/const), types, opérateurs, conditions, boucles
- Fonctions : déclarations, expressions, arrow functions, paramètres/rest
- Portée (scope), hoisting (principes), valeurs par référence
- Mise en application encadrée : écrire des fonctions utilitaires et les tester en console
Module 2 — Objets, tableaux et patterns de manipulation de données
- Objets : propriétés, méthodes, destructuring, spread, copie vs référence
- Tableaux : map/filter/reduce, recherche, tri, immutabilité (principes)
- Chaînes et dates : méthodes utiles, formatage, gestion des locales (notions)
- Comparaisons et égalité : pièges, null/undefined, truthy/falsy
- Gestion d’erreurs : try/catch, erreurs personnalisées, messages utiles
- Mise en application encadrée : transformer un dataset et produire un rendu simple
Module 3 — Le DOM : sélection, création et mise à jour d’interface
- DOM et render : comprendre ce qui coûte cher (reflow/repaint)
- Sélecteurs : querySelector, relations, dataset, classes
- Créer/modifier : templates, createElement, fragments, innerHTML (risques)
- Attributs et styles : classes, inline styles, CSS variables (notions)
- Accessibilité : rôles, labels, focus, navigation clavier (principes)
- Mise en application encadrée : construire une liste filtrable côté client
Module 4 — Événements et interactions utilisateur
- Écouteurs : addEventListener, propagation, capture, stopPropagation
- Délégation d’événements : gérer des listes dynamiques proprement
- Formulaires : validation, messages d’erreur, prévention de soumission
- Gestion d’état simple : synchroniser UI et données, patterns légers
- Interactions avancées : drag & drop (notions), clavier, raccourcis
- Mise en application encadrée : créer un formulaire interactif avec validations
Module 5 — Asynchronisme et communication réseau (APIs)
- Modèle async : event loop (principes), callbacks vs promesses
- Promesses : then/catch/finally, chaînage, Promise.all/allSettled
- async/await : lecture claire, gestion d’erreurs, annulation (notions)
- Fetch : requêtes GET/POST, headers, JSON, timeouts (patterns)
- États UI : chargement, succès, erreur, retry, offline (principes)
- Mise en application encadrée : consommer une API et afficher un résultat paginé
Module 6 — Modules, outillage et structuration de projet
- ES Modules : import/export, organisation en fichiers, encapsulation
- NPM (notions) : dépendances, scripts, versioning, sécurité (principes)
- Bundlers/dev servers (notions) : Vite/Webpack, builds, environnements
- Qualité : ESLint/Prettier (principes), conventions, revues de code
- Gestion de configuration : variables d’environnement (principes)
- Mise en application encadrée : découper une app en modules + script de build (notions).
Module 7 — Qualité, tests et débogage
- DevTools : breakpoints, watch, réseau, performance, mémoire
- Logging utile : niveaux, traces, éviter le bruit
- Tests unitaires (bases) : fonctions pures, cas limites, assertions (Jest/Vitest – notions)
- Gestion des erreurs en prod : messages, fallback UI, surveillance (principes)
- Refactoring : réduire la complexité, nommage, petites fonctions, DRY maîtrisé
- Mise en application encadrée : écrire des tests sur des fonctions métiers simples
Module 8 — Sécurité, performance et bonnes pratiques “niveau avancé”
- Sécurité client : XSS, injection via DOM, règles d’échappement
- Stockage : localStorage/sessionStorage, cookies (notions), données sensibles
- Performance : debounce/throttle, lazy loading, optimisation DOM, caching
- Accessibilité : focus management, ARIA (principes), contrastes, préférences utilisateur
- Compatibilité : polyfills (notions), progressive enhancement
- Mise en application encadrée : optimiser une page (perf + a11y + sécurité)
Module 9 — Approche moderne : composants et intégration à un framework (optionnel)
- Logique composant : props/état, découpage UI, réutilisation
- Patterns : state lifting, events, rendering conditionnel
- Interop : intégrer dans un site existant, progressive adoption
- Notions de TypeScript : typage utile, erreurs évitées (aperçu)
- Bonnes pratiques de documentation : README, exemples, conventions
- Mise en application encadrée : transformer une fonctionnalité DOM en “composants” simples






