$ cat ./formations/javascript-cours-expert
JavaScript moderne : de solide à expert
Description
Un cours pour développeurs qui écrivent déjà du JavaScript et veulent arrêter de deviner. On démonte les règles réelles du langage : coercion et les quatre algorithmes d'égalité, hoisting et TDZ, closures vues depuis les environnements lexicaux, prototypes et classes (champs privés #, static blocks), style fonctionnel avec les apports récents (Object.groupBy d'ES2024, les iterator helpers d'ES2025, toSorted), puis l'asynchronisme depuis l'event loop : microtâches contre macrotâches, cycle de vie d'une Promise, async/await, combinateurs, Promise.withResolvers et AbortSignal.timeout. Chaque affirmation est vérifiable dans la spec ECMAScript ou sur MDN, chaque sortie console est exacte, chaque message d'erreur est celui que V8 affiche vraiment. Testé sur Node 22 et un navigateur de 2025.
Programme
Les 2 premières leçons de ce cours sont en accès libre.
Objectifs
- Prédire le résultat d'une comparaison ou d'une coercion sans lancer le code, en citant la règle de la spec qui s'applique
- Expliquer une closure en termes d'environnements lexicaux et diagnostiquer les fuites mémoire qu'elle peut causer
- Déterminer la valeur de this dans n'importe quel appel, y compris bind sur bind et les fonctions fléchées
- Lire une chaîne de prototypes dans les DevTools et savoir ce que class ajoute vraiment (champs #, static, brand checks)
- Dérouler l'ordre d'exécution exact d'un code mêlant setTimeout, Promises et await via l'event loop
- Choisir entre Promise.all, race, allSettled, any et les API 2024-2025 (withResolvers, AbortSignal.timeout) selon le besoin