Avez-vous une question? (216) 97 656 803 hajjriadh@gmail.com
JavaScript

L'inspecteur et la console des navigateurs : retrouver une erreur

Apprenez à utiliser les outils de développement des navigateurs Chrome, Edge et Firefox : inspecteur du DOM, console et ses méthodes (log, warn, error, table, group, time, count, assert), lecture d'un...

0 chapitres 0 QCM Accès gratuit
Dans cet article

À propos de ce cours

Apprenez à utiliser les outils de développement des navigateurs Chrome, Edge et Firefox : inspecteur du DOM, console et ses méthodes (log, warn, error, table, group, time, count, assert), lecture d'un message d'erreur (type, message, fichier, ligne, pile d'appels), types d'erreurs JavaScript fréquents et méthode pour retrouver et corriger une erreur. Avec des exemples et des activités corrigées.
  1. Objectifs

    • Ouvrir les outils de développement (DevTools) de Chrome, Edge et Firefox.
    • Utiliser l'inspecteur pour examiner et modifier le HTML et le CSS en direct.
    • Utiliser la console pour afficher des messages et tester du code.
    • Lire un message d'erreur et retrouver la ligne fautive.
  2. Ouvrir les outils de développement

  3. ActionChrome / EdgeFirefox
    Ouvrir les DevToolsF12 ou Ctrl + Maj + IF12 ou Ctrl + Maj + I
    Ouvrir directement la consoleCtrl + Maj + JCtrl + Maj + K
    Inspecter un élémentClic droit → Inspecter ou Ctrl + Maj + CClic droit → Examiner l'élément ou Ctrl + Maj + C

    Sur macOS : Cmd + Option + I (DevTools), Cmd + Option + J (console Chrome).

  • Les principaux onglets : Éléments (Inspecteur dans Firefox), Console, Sources (Débogueur dans Firefox), Réseau, Application (Stockage dans Firefox).
  • Edge est basé sur le même moteur que Chrome : ses DevTools sont presque identiques.
  • L'inspecteur (onglet Éléments)

    • Il affiche le DOM: la page telle qu'elle existe en ce moment, après les modifications faites par JavaScript (différent du code source, Ctrl + U).
    • On peut modifier un texte, un attribut ou une classe par double-clic, et tester du CSS dans le panneau Styles. Ces changements sont temporaires : ils disparaissent au rechargement.
    • L'élément sélectionné dans l'inspecteur est accessible dans la console sous le nom $0.
  • La console : afficher des messages

  • La console des DevTools : messages, avertissements, erreurs et tableau

    const stagiaires = [
      { nom: "Sami", note: 14 },
      { nom: "Rim", note: 17 }
    ];
    
    console.log("Bienvenue sur la page des notes"); // message simple
    console.info("Chargement terminé");              // information
    console.warn("La note 22 dépasse 20");           // avertissement (jaune)
    console.error("Impossible de calculer");         // erreur (rouge)
    console.table(stagiaires);                       // affichage en tableau
    console.log("Stagiaires :", stagiaires);         // plusieurs valeurs
    
    console.group("Détails du calcul");              // regrouper des messages
    console.log("Total : 31");
    console.log("Moyenne : 15.5");
    console.groupEnd();
    
    console.time("tri");                             // mesurer une durée
    stagiaires.sort((a, b) => a.note - b.note);
    console.timeEnd("tri");                          // tri: 0.05 ms
    
    console.count("clic");                           // compter les passages
    console.assert(stagiaires.length === 3, "Il devrait y avoir 3 stagiaires");
    • console.assert(condition, message) n'affiche le message (en erreur) que si la condition est fausse.
    • Astuce : console.log({ moyenne }) affiche à la fois le nom et la valeur de la variable.
    • Les filtres en haut de la console permettent de n'afficher que les erreurs, les avertissements, etc. L'option Conserver le journal (Preserve log) garde les messages après un rechargement.
  • La console : tester du code

    • La console est aussi un terrain d'essai: on y tape du JavaScript, la touche Entrée l'exécute et affiche le résultat.
    • Maj + Entrée passe à la ligne sans exécuter (pour écrire plusieurs lignes) ; ↑ rappelle les commandes précédentes.
    • On peut y manipuler la page : document.querySelector("h1").textContent = "Test".
    • clear() ou Ctrl + L efface la console.
    1. Lire un message d'erreur

    2. Uncaught ReferenceError: moyene is not defined
          at afficher (app.js:18:15)
          at app.js:24:1
    • Uncaught: l'erreur n'a pas été interceptée, le script s'est arrêté à cet endroit.
    • ReferenceError: le type d'erreur.
    • moyene is not defined: le message (ici, une faute de frappe : moyene au lieu de moyenne).
    • app.js:18:15: le fichier, la ligne et la colonne. Cliquer sur ce lien ouvre le fichier à la bonne ligne dans l'onglet Sources.
    • Les lignes « at … » forment la pile d'appels: la fonction afficher a été appelée depuis la ligne 24.
  • Les types d'erreurs les plus fréquents

  • TypeExemple de messageCause habituelle
    SyntaxErrorUnexpected token '}', missing ) after argument listCode mal écrit : parenthèse, accolade ou guillemet manquant. Aucune ligne du fichier ne s'exécute.
    ReferenceErrorx is not definedVariable ou fonction inexistante, faute de frappe, mauvaise casse.
    TypeErrorCannot read properties of null (reading 'addEventListener'), x is not a functionOpération impossible sur la valeur : élément introuvable (null), appel de quelque chose qui n'est pas une fonction, réaffectation d'une const.
    RangeErrorMaximum call stack size exceeded, Invalid array lengthValeur hors limites, fonction qui s'appelle elle-même sans fin.
    • Toutes les erreurs ne s'affichent pas : un bug de logique (calcul faux, condition inversée) ne provoque aucun message. Pour ceux-là, on utilise console.log ou les points d'arrêt (leçon suivante).
    • Pensez aussi à l'onglet Réseau: un fichier .js introuvable apparaît en rouge avec le code 404.
  • Méthode pour retrouver une erreur

    1. Ouvrir la console dès que quelque chose ne fonctionne pas.
    2. Lire le type et le message, puis cliquer sur le lien fichier:ligne.
    3. Corriger la première erreur affichée : les suivantes en sont souvent la conséquence.
    4. Si le message n'est pas clair, le rechercher sur MDN (page « Erreurs JavaScript »).
    5. Si aucune erreur n'apparaît mais que le résultat est faux, afficher les valeurs intermédiaires avec console.log.
    6. Recharger la page et vérifier que la console est vide.
  • Activités

  • Activité 1 : découvrir les DevTools

    • Ouvrez un site d'actualités. Avec l'inspecteur, changez le texte du titre principal et la couleur de fond d'un bloc. Rechargez : que se passe-t-il ?
    • Sélectionnez un élément, puis tapez $0 dans la console. Que s'affiche-t-il ?

    Activité 2 : toutes les méthodes de console

    • Créez un fichier console.js qui utilise log, warn, error, table, group, time, count et assert avec un tableau de 5 produits (nom, prix, stock).
    • Utilisez les filtres de la console pour n'afficher que les avertissements.

    Activité 3 : identifier le type d'erreur

    • Tapez chaque ligne dans la console, notez le type et le message d'erreur, puis corrigez :
    console.log("Bonjour"));
    prenom = nom + 1;
    const TVA = 0.19; TVA = 0.2;
    document.querySelector("#inexistant").textContent = "test";
    let total = 10; total();
    new Array(-1);

    Activité 4 : la console comme calculatrice

    • Dans la console, calculez 0.1 + 0.2, "5" + 2, "5" - 2, typeof null. Notez les résultats surprenants : nous les expliquerons dans le chapitre 03. Déposez vos fichiers dans le dépôt GitHub js-console.
    Corrigé de l'activité 3. 1 : SyntaxError (parenthèse fermante en trop : Unexpected token ')'). 2 : ReferenceError (nom n'est pas défini). 3 : TypeError (Assignment to constant variable). 4 : TypeError (l'élément n'existe pas, querySelector renvoie null). 5 : TypeError (total is not a function). 6 : RangeError (Invalid array length).
    Activité 4 : 0.30000000000000004, "52", 3, "object".
  • À retenir

    • F12 ouvre les DevTools ; l'onglet Éléments montre le DOM vivant, la Console affiche les messages et exécute du code.
    • console.log, warn, error et table sont les outils de base du débogage.
    • Un message d'erreur donne un type, un message et un emplacement (fichier:ligne:colonne).
    • On corrige toujours la première erreur en premier.

    Sources : MDN Web Docs (developer.mozilla.org), documentation de Visual Studio Code et des Chrome DevTools.