W3docs

L'API console de JavaScript

L'API console est un outil essentiel pour les développeurs web, permettant d'interagir avec la console du navigateur pour déboguer et journaliser des applications JavaScript.

Introduction à l'API console

L'API console est l'ensemble des méthodes console.* qui permettent à votre JavaScript de communiquer avec la console développeur — le panneau que vous ouvrez via les DevTools du navigateur (Chrome, Firefox, Edge, Safari) ou que Node.js affiche dans votre terminal. C'est l'outil de débogage le plus utilisé en JavaScript : en une seule ligne, vous pouvez inspecter une valeur, mesurer le temps d'une opération ou afficher une trace de la pile d'appels, sans modifier le comportement de votre programme.

Cette page couvre les méthodes que vous utiliserez au quotidien — log, info, warn, error, table, dir, group, time, count, assert et trace — ainsi que les spécificateurs de format (%s, %d, %c) qui contrôlent la façon dont les valeurs sont affichées.

La console est disponible globalement, vous pouvez donc appeler ces méthodes n'importe où — dans un script de navigateur, la console DevTools, ou un fichier Node.js.

Journalisation de base avec console.log()

console.log() affiche des informations dans la console. Elle accepte n'importe quel nombre d'arguments de n'importe quel type et les sépare par des espaces — les string, les nombres, les array et les object sont tous formatés automatiquement.

javascript— editable

Afficher un libellé à côté d'une valeur ('Value of y:', y) est la technique de débogage la plus simple et la plus courante — elle garde la sortie lisible lorsque plusieurs logs défilent.

Niveaux de log : info, warn et error

console.info(), console.warn() et console.error() fonctionnent exactement comme console.log(), mais portent un niveau de sévérité. Le navigateur stylise chacun différemment (les avertissements ont un fond jaune, les erreurs un fond rouge) et — point important — les DevTools vous permettent de filtrer par niveau, afin de masquer le bruit et d'afficher uniquement les erreurs lorsqu'une page se comporte mal.

javascript— editable

Utilisez console.warn() pour les situations récupérables mais qui méritent attention (une option dépréciée, un champ optionnel manquant) et console.error() pour les véritables échecs. Associez console.error() à une gestion des erreurs avec try...catch appropriée afin que les échecs soient à la fois signalés et traités.

Formater la sortie avec les spécificateurs de format

Lorsque le premier argument d'une méthode console contient un spécificateur de format, les arguments suivants sont substitués à la place. Les spécificateurs courants sont :

  • %s — une string
  • %d (ou %i) — un entier
  • %f — un nombre à virgule flottante
  • %o / %O — un object
  • %c — applique un style CSS à la sortie (navigateur uniquement)
javascript— editable

Dans Node.js, le style %c est ignoré, mais le texte s'affiche quand même. Les spécificateurs de format sont pratiques lorsque vous souhaitez une sortie propre, de type phrase, plutôt que des valeurs séparées par des virgules.

Afficher des données structurées

Tableaux avec console.table()

console.table() affiche un array d'object (ou un object d'object) sous forme de tableau triable — bien plus facile à parcourir que la sortie imbriquée de console.log().

javascript— editable

Inspecter des objets avec console.dir()

console.dir() affiche une liste interactive et déroulable des propriétés d'un object. Elle est particulièrement utile pour les nœuds DOM : console.log(element) montre le HTML rendu, tandis que console.dir(element) montre l'élément en tant qu'object JavaScript avec toutes ses propriétés.

javascript— editable

Organiser et compter les logs

Groupement avec console.group()

console.group() et console.groupEnd() indentent et (dans le navigateur) réduisent les logs entre eux — idéal pour regrouper les sorties connexes lors d'une session de débogage complexe.

javascript— editable

Utilisez console.groupCollapsed() à la place de console.group() pour démarrer le groupe réduit par défaut.

Comptage avec console.count()

console.count(label) affiche le nombre de fois qu'elle a été appelée avec ce libellé — un moyen rapide de voir combien de fois une fonction s'exécute ou une branche est parcourue, sans maintenir une variable compteur.

javascript— editable

Assertions et traces de pile

Assertions avec console.assert()

console.assert(condition, message) journalise le message uniquement lorsque la condition est falsy. Lorsque la condition est truthy, aucune sortie n'est produite, ce qui vous permet de laisser des vérifications en place sans encombrer la console.

javascript— editable

Traces de pile avec console.trace()

console.trace() affiche la pile d'appels courante — la chaîne d'appels de fonctions qui a mené à ce point. C'est le moyen le plus rapide de répondre à la question « comment l'exécution est-elle arrivée ici ? »

javascript— editable

Mesurer les performances

console.time(label) démarre un minuteur et console.timeEnd(label) l'arrête et affiche le temps écoulé en millisecondes. Utilisez le même libellé pour les deux appels. C'est une alternative légère à performance.now() pour repérer les opérations lentes.

javascript— editable

Où aller ensuite

L'API console n'est qu'une partie d'un kit de débogage plus large. Pour les points d'arrêt, le panneau Sources et le reste des DevTools, consultez Débogage DOM et outils. Et bien que les appels console soient très utiles en développement, préférez des commentaires de code descriptifs pour les explications qui doivent rester dans le code source de façon permanente — et pensez à supprimer les appels console.log superflus avant la mise en production.

Conclusion

L'API console vous offre un moyen rapide, sans configuration, de comprendre ce que fait votre code : log/info/warn/error pour les messages à niveaux, table et dir pour les données structurées, group et count pour organiser la sortie, time pour les performances, et assert/trace pour détecter et expliquer les bugs. Combinées aux spécificateurs de format, ces méthodes couvrent la grande majorité du débogage JavaScript quotidien.

Pratique

Pratique
Lesquelles des affirmations suivantes décrivent avec précision les capacités de l'API console de JavaScript ?
Lesquelles des affirmations suivantes décrivent avec précision les capacités de l'API console de JavaScript ?
Was this page helpful?