PopulaireParcours
Apprendre JavaScript
Un cours JavaScript en ligne, gratuit et interactif. Tu écris du JS à chaque leçon — syntaxe, fonctionnalités modernes d'ES6, fonctions, le DOM — avec des indices IA quand tu bloques et un certificat à la fin.
245,770+ codders inscrits
- Adapté aux débutants
Aide au codage assistée par IA
Leçons interactives et pratiques
Narration audio dans chaque leçon
Quiz pour tester vos connaissances
Certificat gratuit de réussite
Programme
Section 1
Fondamentaux
Commencer la sectionDémarrerDévelopperRéduireConstruisez une base solide avec des concepts essentiels et des compétences de baseIntroduction
4 leçons223- 01Le langageDéfi
- 02Hello World !DéfiQuizAudio
- 03CommentairesQuizAudio
- 04Structure du codeQuizAudio
Variables
7 leçons1247- 01NombresDéfiMaîtriseQuizAudio
- 02Chaînes de caractèresDéfiMaîtriseQuizAudio
- 03BooléensDéfiMaîtriseQuizAudio
- 04Conventions de nommageDéfiMaîtriseQuizAudio
- 05Variables videsDéfiQuizAudio
- 06Récapitulatif - Initialiser des variablesDéfi
- 07ConstantesDéfiMaîtriseQuizAudio
Opérateurs - Partie 1
6 leçons1037- 01Opérateurs arithmétiquesDéfiMaîtriseQuizAudio
- 02Opérateur moduloDéfiMaîtriseQuizAudio
- 03Raccourcis arithmétiquesDéfiMaîtriseQuizAudio
- 04Opérateurs de comparaisonDéfiMaîtriseQuizAudio
- 05Égalité stricte vs faibleDéfiQuizAudio
- 06Récapitulatif - Mathématiques simplesDéfi
Opérateurs Partie 2
5 leçons831- 01Opérateurs logiques Partie 1DéfiMaîtriseQuizAudio
- 02Opérateurs logiques Partie 2DéfiMaîtriseQuizAudio
- 03Récapitulatif - Logique simpleDéfi
- 04Opérateurs logiques Partie 3DéfiMaîtriseQuizAudio
- 05Coercion de typeDéfiQuizAudio
Prise de décision
5 leçons729- 01L'instruction IfDéfiMaîtriseQuizAudio
- 02If - ElseDéfiMaîtriseQuizAudio
- 03Récapitulatif - Calculatrice simpleDéfi
- 04If - Else imbriquésDéfiQuizAudio
- 05L'instruction SwitchDéfiQuizAudio
Entrées/Sorties de base
6 leçons931- 01SortieDéfiMaîtriseQuizAudio
- 02Sortie avec des variablesDéfiMaîtriseQuizAudio
- 03Conversion de type - Partie 1DéfiMaîtriseQuizAudio
- 04Conversion de type - Partie 2DéfiQuizAudio
- 05Récapitulatif - Jusqu'à 120Défi
- 06Récapitulatif - Vrai ou FauxDéfi
Calculateur de partage d'addition
Projet4 leçons1- 01Message de bienvenueDéfi
- 02Calcul du pourboire et du totalProjet
- 03Partager l'additionProjet
- 04Affichage formatéProjet
Boucles
7 leçons1345- 01Boucle ForDéfiMaîtriseQuizAudio
- 02Boucle WhileDéfiMaîtriseQuizAudio
- 03BreakDéfiMaîtriseQuizAudio
- 04ContinueDéfiMaîtriseQuizAudio
- 05Récapitulatif - FactorielleDéfi
- 06Boucle Do WhileDéfiMaîtriseQuizAudio
- 07Boucles imbriquéesDéfiMaîtriseQuizAudio
Fonctions
8 leçons1250- 01Déclarer une fonctionDéfiMaîtriseQuizAudio
- 02ArgumentsDéfiMaîtriseQuizAudio
- 03L'instruction returnDéfiMaîtriseQuizAudio
- 04Récapitulatif - Fonction SigmaDéfi
- 05Expression de fonctionDéfiMaîtriseQuizAudio
- 06Paramètres par défautQuizAudio
- 07Fonctions fléchéesDéfiMaîtriseQuizAudio
- 08Récapitulatif - Fonction de validationDéfi
FizzBuzz avec une variante
Projet4 leçons1- 01Présentation du jeuDéfi
- 02La fonction FizzBuzzProjet
- 03Parcourir les nombresProjetAudio
- 04Ajouter la varianteProjet
Les tableaux - Partie 1
6 leçons1037- 01Déclarer un tableauDéfiMaîtriseQuizAudio
- 02Accéder aux éléments d'un tableauDéfiMaîtriseQuizAudio
- 03Modifier des tableauxDéfiQuizAudio
- 04Méthodes de tableau - Partie 1DéfiMaîtriseQuizAudio
- 05Méthodes de tableau - Partie 2DéfiMaîtriseQuizAudio
- 06Récapitulatif - Processeur de tableauxDéfi
Tableaux, Partie 2
8 leçons1254- 01Parcourir les tableauxDéfiQuizAudio
- 02La méthode forEachDéfiQuizAudio
- 03Boucle for...ofDéfiMaîtriseQuizAudio
- 04Récapitulatif - Compteur PDéfi
- 05Slicing de tableauxDéfiMaîtriseQuizAudio
- 06Méthodes de tableaux, Partie 3DéfiMaîtriseQuizAudio
- 07Méthodes de tableaux, Partie 4DéfiMaîtriseQuizAudio
- 08Test d'appartenanceDéfiQuizAudio
Suivi de liste de courses
Projet4 leçons1- 01Présentation du projetDéfi
- 02Ajouter un articleProjet
- 03Supprimer un articleProjet
- 04Afficher la listeProjet
Défis finaux
3 leçons37- 01Pyramide de nombresDéfiQuizAudio
- 02Doubler les impairsDéfi
- 03Quoi acheterDéfi
Section 2
Logique & Flux
Commencer la sectionDémarrerDévelopperRéduireDéveloppez des compétences en résolution de problèmes et créez des programmes dynamiques et interactifsLes chaînes de caractères en profondeur
5 leçons630- 01Fondamentaux des chaînesQuiz
- 02Parcourir les chaînesDéfiMaîtriseQuiz
- 03Template LiteralsDéfiQuiz
- 04Méthodes des chaînesDéfiMaîtriseQuiz
- 05Récapitulatif - String WeaverDéfi
Tableaux multidimensionnels
9 leçons1452- 01Bases des tableaux 2DQuiz
- 02Accès aux éléments d'un tableau 2DDéfiMaîtriseQuiz
- 03Boucles imbriquées et tableaux 2DDéfiMaîtriseQuiz
- 04Récapitulatif - Tableaux 2DDéfi
- 05Addition et soustraction de matricesDéfiMaîtriseQuiz
- 06Tableaux irréguliers (Jagged Arrays)DéfiMaîtriseQuiz
- 07Tableaux 3D et au-delàDéfiMaîtriseQuiz
- 08Modèles courants de tableaux 2DDéfiMaîtriseQuiz
- 09Récapitulatif - Tout sur les tableauxDéfi
JSON Partie 1
7 leçons944- 01Qu'est-ce qu'un JSON ?Quiz
- 02Vérifier si une clé existeDéfiMaîtriseQuiz
- 03Méthodes d'objetDéfiMaîtriseQuiz
- 04L'opérateur Spread Partie 1Quiz
- 05L'opérateur Spread Partie 2DéfiMaîtriseQuiz
- 06Supprimer des clésDéfiMaîtriseQuiz
- 07Récapitulatif - Manipuler les clés JSONDéfi
JSON Partie 2
6 leçons530- 01Itérer sur du JSONDéfiQuiz
- 02JSON imbriquéDéfiQuiz
- 03Chaînage optionnel JSONQuiz
- 04Copie superficielle et profondeDéfiQuiz
- 05Récapitulatif - Magasin de vélosDéfi
- 06Récapitulatif - Système solaireDéfi
Les Ensembles - Partie 1
8 leçons749- 01Qu'est-ce qu'un ensemble ?DéfiQuiz
- 02Parcourir les ensemblesQuiz
- 03Ajouter un élémentDéfiQuiz
- 04Supprimer un élémentDéfiQuiz
- 05Vérifier si un élément existeDéfiQuiz
- 06Taille et Est videDéfiQuiz
- 07Copier et EffacerDéfiQuiz
- 08Récapitulatif - Les bases des ensemblesDéfi
Ensembles - Partie 2
6 leçons637- 01Math - Union d'ensemblesDéfiQuiz
- 02Math - Intersection d'ensemblesDéfiQuiz
- 03Math - Différence d'ensemblesDéfiQuiz
- 04Math - Différence symétriqueDéfiQuiz
- 05Sous-ensembles et sur-ensemblesDéfiQuiz
- 06Récapitulatif - Grouper des amisDéfi
Système de gestion de bibliothèque
Projet5 leçons1- 01Présentation du projetDéfi
- 02Ajouter des livresProjet
- 03Recherche par titreProjet
- 04Filtrer par genreProjet
- 05Marquer comme luProjet
Tableaux : Sujets avancés
4 leçons422- 01Déstructuration de TableauxDéfiQuiz
- 02Syntaxe Spread dans les TableauxDéfiQuiz
- 03Tableaux creuxDéfiQuiz
- 04Récapitulatif - Atelier sur les TableauxDéfi
Méthodes avancées des tableaux
9 leçons761- 01Les méthodes Join & SplitQuiz
- 02La méthode MapDéfiMaîtriseQuiz
- 03La méthode FilterDéfiQuiz
- 04La méthode ReduceDéfiQuiz
- 05Chaînage des méthodes de tableauxDéfiQuiz
- 06ForEach et Map sont-elles identiques ?Quiz
- 07La méthode SortDéfiQuiz
- 08Les méthodes Find & FindIndexQuiz
- 09Récapitulatif - Le maître du chaînageDéfi
Gérer le système du festival
Projet6 leçons1- 01Présentation du projetDéfi
- 02Ajouter des films et des lieuxProjet
- 03Ajouter une projectionProjet
- 04Acheter des billetsProjet
- 05Noter les filmsProjet
- 06Annuler des projectionsProjet
Section 3
Introduction à TypeScript
Commencer la sectionDémarrerDévelopperRéduireIntroduction à TypeScript après avoir appris JavaScriptPremiers pas avec TS
5 leçons232- 01Qu'est-ce que TypeScript ?Quiz
- 02Pourquoi utiliser TypeScript ?Quiz
- 03Votre premier code TypeScriptDéfiQuiz
- 04Processus de compilation et erreursQuiz
- 05Récapitulatif : Introduction à TSDéfi
Types fondamentaux
7 leçons748- 01Types de base : str, num, booleanDéfiQuiz
- 02Le type 'any' : la porte de sortieDéfiQuiz
- 03Le type 'unknown'DéfiQuiz
- 04Travailler avec 'null' et 'undef'DéfiQuiz
- 05L'inférence de type en actionDéfiQuiz
- 06Annotations de type explicitesDéfiQuiz
- 07Récapitulatif : Pratique des types fondamentauxDéfi
Structure de données : Tableaux et Tuples
9 leçons862- 01Tableaux typésDéfiQuiz
- 02Modificateur 'readonly' pour les tableauxDéfiQuiz
- 03Qu'est-ce qu'un tuple ?Quiz
- 04Déclaration et accès aux tuplesDéfiQuiz
- 05Déstructuration de tuplesDéfiQuiz
- 06Tuples readonlyDéfiQuiz
- 07Tableaux typés multidimensionnelsDéfiQuiz
- 08Spread operator avec les tableauxDéfiQuiz
- 09Récapitulatif : Tableaux et tuplesDéfi
Travailler avec les fonctions
8 leçons855- 01Typage des paramètres et valeurs de retourDéfiQuiz
- 02Typage des fonctions fléchéesDéfiQuiz
- 03Le type de retour 'void'DéfiQuiz
- 04Paramètres optionnels avec '?'DéfiQuiz
- 05Valeurs par défaut des paramètresDéfiQuiz
- 06Typage des paramètres RestDéfiQuiz
- 07Définir des types de fonctionsDéfiQuiz
- 08Récapitulatif : Créer des fonctions typéesDéfi
Types : Alias, Unions & Intersections
7 leçons751- 01Alias de types pour les primitifsDéfiQuiz
- 02Types d'union ('|')DéfiQuiz
- 03Travailler avec les types d'unionDéfiQuiz
- 04Types littérauxDéfiQuiz
- 05Types d'intersection ('&')DéfiQuiz
- 06Combiner des alias de typesDéfiQuiz
- 07Récapitulatif : Combinaisons de types avancéesDéfi
Typage des objets et interfaces
8 leçons757- 01Annotations de type d'objet en ligneDéfiQuiz
- 02Alias de type pour les objetsDéfiQuiz
- 03Introduction aux interfacesDéfiQuiz
- 04Interfaces vs Alias de typeQuiz
- 05Propriétés optionnelles et ReadonlyDéfiQuiz
- 06Étendre les interfaces et les typesDéfiQuiz
- 07Ajout de méthodes aux interfacesDéfiQuiz
- 08Récapitulatif : Définir la structure des objetsDéfi
Projet : Une liste de tâches simple
Projet6 leçons18- 01Projet : Définir la struct TaskDéfiQuiz
- 02Fonction pour ajouter une tâcheProjet
- 03Fonction pour modifier le statut d'une tâcheProjet
- 04Fonction : Lister les tâches par statutProjet
- 05Fonction : Afficher le résumé des tâchesProjet
- 06Assembler le toutProjet
Énumérations
6 leçons638- 01Qu'est-ce qu'une énumération numérique ?DéfiQuiz
- 02Utiliser les énumérations numériquesDéfiQuiz
- 03Qu'est-ce qu'une énumération de chaînes ?DéfiQuiz
- 04Utiliser les énumérations de chaînesDéfiQuiz
- 05Énumérations hétérogènesDéfiQuiz
- 06Récapitulatif : Utiliser les énumérationsDéfi
Les génériques : un premier aperçu
6 leçons537- 01Le problème résolu par les génériquesQuiz
- 02Créer une fonction d'identité génériqueDéfiQuiz
- 03Utiliser une fonction génériqueDéfiQuiz
- 04Tableaux génériquesDéfiQuiz
- 05Interfaces génériquesDéfiQuiz
- 06Récapitulatif : Pratique des fonctions génériquesDéfi
Projet : Gestion d'inventaire
Projet5 leçons18- 01Projet : Article d'inventaire génériqueDéfiQuiz
- 02Fonction : Ajouter des articles à l'inventaireProjet
- 03Fonction pour trouver un article par IDProjet
- 04Créer un type d'inventaire spécifiqueProjet
- 05Fonction pour obtenir les détails de l'articleProjet
Sujets avancés
6 leçons642- 01Assertions de typeDéfiQuiz
- 02Type Guards : in & instanceofDéfiQuiz
- 03Le type 'never'DéfiQuiz
- 04Types nullables ('strictNull')DéfiQuiz
- 05Signatures d'index pour les objetsDéfiQuiz
- 06Récapitulatif : Affiner les typesDéfi
Section 4
Programmation Orientée Objet
Commencer la sectionDémarrerDévelopperRéduireDécouvrez comment organiser le code avec des classes, des objets et des structures réutilisablesObjets et le mot-clé this
6 leçons642- 01Révision rapide : Les objetsDéfiQuiz
- 02Ajouter des méthodes aux objetsDéfiQuiz
- 03Comprendre le mot-clé thisDéfiQuiz
- 04Fonctions constructeursDéfiQuiz
- 05Le mot-clé newDéfiQuiz
- 06Défi récapitulatifDéfi
Organisation du code
4 leçons434- 01Qu'est-ce qu'un module ?DéfiQuiz
- 02Exporter avec exportDéfiQuiz
- 03Importer avec importDéfiQuiz
- 04Exports par défaut vs nommésDéfiQuiz
Classes et Objets
4 leçons426- 01Qu'est-ce qu'une classe ?DéfiQuiz
- 02Créer des instancesDéfiQuiz
- 03Propriétés et méthodesDéfiQuiz
- 04Défi récapitulatifDéfi
Méthodes et gestion de l'état
2 leçons218- 01Méthodes modifiant l'étatDéfiQuiz
- 02Pattern de chaînage de méthodesDéfiQuiz
Encapsulation & Accès
4 leçons426- 01EncapsulationDéfiQuiz
- 02Champs de classe publics et privésDéfiQuiz
- 03Méthodes privéesDéfiQuiz
- 04Défi récapitulatifDéfi
Projet : Un compte bancaire simple
Projet3 leçons1- 01Classe BankAccountDéfi
- 02Dépôts et retraitsProjet
- 03Le solde comme champ privéProjet
L'héritage et le mot-clé extends
6 leçons645- 01L'héritageDéfiQuiz
- 02La relation « est un »DéfiQuiz
- 03Le mot-clé extendsDéfiQuiz
- 04La méthode super()DéfiQuiz
- 05Hériter des propriétés et méthodesDéfiQuiz
- 06Défi récapitulatifDéfi
Organisation du code POO
1 leçon19- 01Organiser les classes en modulesDéfiQuiz
Méthodes et propriétés statiques
4 leçons425- 01Niveau classe vs Niveau instanceDéfiQuiz
- 02Propriétés statiquesDéfiQuiz
- 03Méthodes utilitaires statiquesDéfiQuiz
- 04Défi récapitulatifDéfi
Polymorphisme
4 leçons425- 01Qu'est-ce que le polymorphisme ?DéfiQuiz
- 02Redéfinition de méthodes héritéesDéfiQuiz
- 03Utiliser superDéfiQuiz
- 04Défi récapitulatifDéfi
Projet : Un moteur de rendu de formes
Projet4 leçons1- 01Configuration : Classe Shape et ExportationDéfi
- 02Héritage de la classe CircleProjet
- 03Redéfinition et méthode AreaProjet
- 04Compteur de formes statiqueProjet
Getters et Setters
4 leçons426- 01Les mots-clés get et setDéfiQuiz
- 02Propriétés calculéesDéfiQuiz
- 03Validation et effets de bordDéfiQuiz
- 04Défi récapitulatifDéfi
Composition vs Héritage
3 leçons328- 01Les relations « has-a » vs « is-a »DéfiQuiz
- 02Les limites de l'héritage profondDéfiQuiz
- 03Construction d'objetsDéfiQuiz
Système de gestion de bibliothèque
Projet3 leçons1- 01Conception de la bibliothèqueDéfi
- 02Classe Book avec compositionProjet
- 03Validation de l'auteur du livreProjet
Défis finaux
4 leçons4- 01Créateur de personnages de jeuDéfi
- 02Système de produits E-commerceDéfi
- 03Système de gestion universitaireDéfi
- 04Système d'appareils domotiquesDéfi
Pourquoi apprendre JavaScript avec Coddy
- Exécute du JavaScript instantanément dans ton navigateur. Pas de Node.js à installer, pas d'IDE à configurer. L'éditeur et la sortie sont côte à côte, donc la boucle de feedback en JavaScript est courte.
- JavaScript moderne : syntaxe ES6+, fonctions fléchées, promises, async/await, destructuring, modules — le JavaScript que tu écrirais en poste, pas des patterns d'un autre âge.
- Les indices IA t'aident à débugger un exercice sans te spoiler la solution, pour que tu construises le modèle mental qui rendra ton futur code JS plus facile à écrire.
- Certificat gratuit de fin de cours à partager sur LinkedIn ou à ajouter à ton CV pour prouver que tu as terminé une formation interactive en JavaScript.
Questions fréquentes sur l’apprentissage de JavaScript
JavaScript est-il facile à apprendre ?
JavaScript est l'un des langages les plus accessibles pour débuter. La syntaxe est tolérante, tu peux exécuter ton code directement dans n'importe quel navigateur, et l'interactivité de base (clics sur un bouton, alertes) te donne un retour visuel immédiat. Les parties plus délicates — le code asynchrone, les closures, le this-binding — arrivent plus tard, et le cours les introduit progressivement avec des exemples concrets.
Combien de temps faut-il pour apprendre JavaScript ?
Les bases de JavaScript s’apprennent souvent en une à deux semaines de pratique quotidienne. Pour être à l’aise sur des projets réels, compte plutôt un à trois mois selon ton rythme.
Faut-il apprendre HTML et CSS avant JavaScript ?
Ça aide. JavaScript devient bien plus concret quand tu peux modifier une vraie page — masquer un élément, changer un texte, réagir à un clic. Les cours HTML et CSS sont courts et débouchent directement sur les leçons de JavaScript qui touchent au DOM, mais tu peux aussi commencer par la logique JavaScript pure.
Est-ce que je peux apprendre JavaScript en ligne gratuitement ?
Oui. Le cours interactif de JavaScript est gratuit — leçons complètes, exercices de code, quiz et un certificat. L'éditeur tourne dans ton navigateur, donc pas besoin d'installer Node.js ni quoi que ce soit d'autre pour commencer à écrire du JS.
Quelle est la différence entre JavaScript et Java ?
Malgré le nom, ce sont deux langages sans rapport. Java est un langage à typage statique, basé sur les classes, très utilisé côté serveur et sur Android. JavaScript est à typage dynamique et tourne dans les navigateurs et sur Node.js. Pour le web, apprends JavaScript ; pour Android ou les gros backends d'entreprise, apprends Java.
Est-ce que je reçois un certificat à la fin du cours de JavaScript ?
Oui. En terminant le cours de JavaScript, tu obtiens un certificat de réussite gratuit que tu peux partager sur LinkedIn ou ajouter à ton CV. Une preuve vérifiable que tu as suivi un cours structuré et interactif, et pas juste regardé des tutos.