JavaScript web
JavaScript web
Se connecter pour s'inscrireVotre progression
0 / 0 étapes complétées
0
Syllabus
-
-
Objectifs
-
Validations de compétences
-
Public cible
Aucun public cible spécifié pour ce module.
-
Besoins techniques
-
Prérequis
- Aucun prérequis
-
Niveau
-
Historique du module
Aucune action enregistrée
-
Informations Générales
- Durée : ~ 50h
- Format : Cours en présentiel / En ligne (en fonction des besoins)
- Objectifs :
- Maîtriser les fondamentaux de la programmation en JavaScript.
- Comprendre le DOM et la manipulation des éléments HTML.
- Apprendre à gérer les événements et les interactions utilisateur.
- Découvrir les concepts avancés comme l'asynchrone et les API.
- Mettre en pratique les bonnes pratiques de développement JavaScript.
- Prérequis : Connaissances de base en HTML et CSS recommandées.
- Public cible :
- Débutants en programmation souhaitant acquérir des bases solides en JavaScript
- Développeurs web front-end cherchant à approfondir leurs compétences en JavaScript pur
- Étudiants en informatique ou en développement web
- Professionnels en reconversion dans le développement web
- Autodidactes souhaitant structurer leur apprentissage du JavaScript
- Méthode d'enseignement :
- Théorie et démonstrations
- Exercices pratiques guidés
- Mini-projets
- Projet final intégrateur
- Besoins techniques :
- Matériel requis :
- Ordinateur portable ou de bureau (Windows, macOS ou Linux)
- Connexion internet stable
- Casque audio avec micro (pour les sessions en ligne)
- Logiciels à installer :
- Navigateur web moderne (Chrome, Firefox, Edge, ou Safari récent)
- Éditeur de code (VS Code, Sublime Text, ou WebStorm recommandés)
- Node.js (version LTS recommandée)
- Git (pour la gestion de version)
- Comptes requis :
- Compte GitHub (gratuit)
- Compte sur CodePen ou JSFiddle (optionnel pour les exercices en ligne)
- Matériel requis :
-
Modules du Cours
-
Introduction à JavaScript
- Les bases du langage
- Variables (let, const, var) et types de données
- Opérateurs et expressions
- Structures de contrôle (if/else, switch, boucles)
- Fonctions et portée
- Déclaration et appel de fonctions
- Fonctions fléchées
- Portée des variables (scope) et closure
- Les objets et tableaux
- Création et manipulation d'objets
- Méthodes d'objets et this
- Méthodes des tableaux (map, filter, reduce, etc.)
- Exercice pratique : Créer un calculateur simple
- Les bases du langage
-
Le DOM et la manipulation d'éléments
- Introduction au DOM
- Qu'est-ce que le DOM ?
- Navigation dans l'arbre DOM
- Sélection d'éléments (getElementById, querySelector, etc.)
- Manipulation du DOM
- Création, modification et suppression d'éléments
- Modification des styles et des classes CSS
- Manipulation des attributs et propriétés
- Événements
- Gestion des événements (addEventListener)
- Types d'événements (click, submit, keypress, etc.)
- Délégation d'événements
- Exercice pratique : Créer une liste de tâches interactive
- Introduction au DOM
-
JavaScript Avancé
- Programmation asynchrone
- Callbacks et Callback Hell
- Promesses (Promises)
- Async/Await
- Manipulation des formulaires avec JavaScript
- Validation des formulaires
- Gestion de la soumission
- API FormData
- Stockage côté client
- localStorage et sessionStorage
- Cookies vs Web Storage
- IndexedDB (introduction)
- Exercice pratique : Créer un gestionnaire de notes avec sauvegarde locale
- Programmation asynchrone
-
API et requêtes HTTP
- Introduction aux API REST
- Qu'est-ce qu'une API ?
- Méthodes HTTP (GET, POST, PUT, DELETE)
- Format JSON
- Fetch API
- Faire des requêtes GET, POST, PUT, DELETE
- Gestion des réponses et des erreurs
- En-têtes et authentification
- Axios (librairie tierce)
- Avantages par rapport à Fetch
- Intercepteurs et configuration globale
- Exercice pratique : Créer une application météo avec une API publique
- Introduction aux API REST
-
Sémantique et accessibilité
- Les balises sémantiques
- Utilisation des balises <header>, <footer>, <nav>, <section>, <article>, <aside>
- Importance de la sémantique pour le SEO et l’accessibilité
- Accessibilité des contenus HTML
- L’importance des attributs
alt,aria,role - Bonnes pratiques pour rendre les pages web accessibles à tous
- L’importance des attributs
- Exercice pratique : Structurer une page sémantiquement correcte et accessible
- Les balises sémantiques
-
Bonnes pratiques et outils
- ES6+ et modules JavaScript
- Import/export de modules
- Nouvelles fonctionnalités ES6+
- Transpilation avec Babel
- Outils de développement
- ESLint et Prettier
- Debugging avec les DevTools
- Tests unitaires (introduction à Jest)
- Performance JavaScript
- Optimisation des boucles
- Déchargement des tâches lourdes
- Utilisation de Web Workers
- ES6+ et modules JavaScript
-
Projet final
- Projet pratique : Développer une application web interactive
- Les étudiants devront créer une application monopage (SPA) utilisant JavaScript pur
- L'application devra interagir avec une API externe
- Gestion d'état et stockage local
- Critères d'évaluation :
- Fonctionnalités implémentées
- Qualité du code et architecture
- Gestion des erreurs et états de chargement
- Expérience utilisateur et interface
- Documentation et bonnes pratiques
- Projet pratique : Développer une application web interactive
-
-
Ressources Supplémentaires
- MDN JavaScript - Documentation complète de référence
- JavaScript.info - Tutoriels modernes et détaillés
- ESLint - Outil d'analyse de code JavaScript
- Guide de style JavaScript d'Airbnb - Bonnes pratiques de codage
- freeCodeCamp - Exercices pratiques gratuits
Atelier guidé
Manipuler le DOM, gérer les événements et consommer une API avec des états d’erreur comprensibles.
- DOM : sélectionner des éléments, créer une carte et mettre à jour le texte sans innerHTML non sûr.
- Asynchrone : appeler une API, gérer loading, succès et erreur puis annuler une requête obsolète.
- Tests : extraire une fonction pure, écrire ses tests et vérifier le rendu avec un scénario utilisateur.
Restitution de l’atelier
- Une interface interactive en JavaScript.
- Une gestion d’API avec états et accessibilité.
- Une suite de tests et un README de lancement.
Validation : Le code reste maintenable, ne bloque pas le navigateur et fournit un retour utile à chaque état.