L'objet console donne accès à la console de débogage du navigateur (par exemple., la Console Web dans Firefox). Les spécificités de fonctionnement varient d'un navigateur à l'autre, mais il y a tout de même un ensemble de fonctionnalités qui sont fournies de base.

La console est accessible de n'importe quel objet global, Window du cadre de navigation, WorkerGlobalScope et ses variantes spécifiques pour les workers. Elle est exposée comme Window.console et peut être référencée simplement comme console. Par exemple :

console.log("Failed to open the specified link")

Cette page documente les méthodes disponibles pour l'objet console et donne quelques exemples d'utilisation.

Note : Cette fonctionnalité est disponible via les Web Workers.

Méthodes

Console.assert()
Affiche un message et une trace d'appels dans la console si l'assertion en argument est à false.
Console.clear()
Vide la console.
Console.count()
Affiche le nombre de fois que la ligne a été appelée avec un label donné.
Console.debug()
Un alias de log().

Note : À partir de Chromium 58, cette méthode n'apparaît que dans les consoles de navigateur Chromium lorsque le niveau "Verbose" est sélectionné.

Console.dir()
Affiche une liste interactive des propriétés d'un objet JavaScript donné. Cette liste vous permet d'examiner le contenu des enfants de l'objet en ouvrant les détails (petits triangles).
Console.dirxml()

Affiche si possible une représentation d'éléments XML/HTML d'un objet spécifié. Sinon, c'est une vue de l'objet JavaScript.

Console.error()
Affiche un message d'erreur. Vous pouvez utiliser les caractères de substitution et des arguments supplémentaires avec cette méthode.
Console._exception()
Un alias d'error();
Console.group()
Crée un nouveau groupe en ligne, correspondant à un nouveau niveau d'indentation. Contrairement à group(). Pour revenir au niveau précédent, appeler groupEnd().
Console.groupCollapsed()
Crée un nouveau groupe en ligne, correspondant à un nouveau niveau d'indentation. Contrairement à group() , cela commence avec le groupe en ligne effondré, nécessitant l'utilisation d'un bouton de divulgation pour l'agrandir. Pour revenir au niveau précédent, appeler groupEnd().
Console.groupEnd()
Quitte le groupe d'indentation courant.
Console.info()
Affiche un message d'information. Vous pouvez utiliser les caractères de substitution et des arguments supplémentaires avec cette méthode.
Console.log()
Permet d'afficher des messages dans la console. Vous pouvez utiliser les caractères de substitution et des arguments supplémentaires avec cette méthode.
Console.profile()
démarre le profilage du navigateur (par exemple, l'outil performances de Firefox). Vous pouvez spécifier un nom en option pour ce profil.
Console.profileEnd()
Arrête le profilage. Vous pouvez voir le résultat de ce dernier dans l'outil « performance » du navigateur (par exemple, l'outil performance Firefox).
Console.table()
Affiche des données tabulaires comme un tableau.
Console.time()
Démarre un chronomètre que l'on peut nommer en le spécifiant en tant que paramètre. Jusqu'à 10 000 chronomètres simultanés peuvent tourner sur une page.
Console.timeEnd()
Arrête le chronomètre spécifié et affiche le temps écoulé en millisecondes depuis son démarrage.
Console.timeStamp()
Ajoute un marqueur dans la Timeline du navigateur ou l'outil Waterfall.
Console.trace()
Affiche une trace d'appels.
Console.warn()
Affiche un message d'avertissement. Vous pouvez utiliser les caractères de substitution et des arguments supplémentaires avec cette méthode.

Exemples d'utilisation

Afficher du texte dans la console

La fonction la plus utilisée de la console est d'afficher du texte ou autres données. Il y a quatre sortes d'affichages que vous pouvez générer, en utilisant les méthodes console.log(), console.info(), console.warn(), et console.error(). Chacune de ces méthodes génére un affichage différent dans la console, et vous pouvez utiliser les fonctions de filtrage du navigateur pour voir uniquement les types de sortie qui vous intéressent.

Il y a deux manières d'utiliser chacune de ces méthodes de sortie ; Vous pouvez passer une liste d'objets dont leur représentation sera concaténée dans une seule chaine et s'affichera dans la console, ou vous pouvez passer une chaîne de caractères contenant zéro et plus de caractères de substitution suivis d'une liste d'objets avec lesquels les remplacer.

Afficher un seul objet

La manière la plus simple d'utiliser les méthodes de « log » est d'afficher un seul objet :

var someObject = { str: "Some text", id: 5 };
console.log(someObject);

L'affichage ressemblera à ceci :

[09:27:13.475] ({str:"Some text", id:5})

Afficher plusieurs objets

Vous pouvez aussi afficher plusieurs objets, en les séparant par une virgule, comme ceci :

var car = "Dodge Charger";
var someObject = {str:"Some text", id:5}; 
console.info("My first car was a", car, ". The object is: ", someObject);

L'affichage ressemblera à ceci :

[09:28:22.711] My first car was a Dodge Charger . The object is:  ({str:"Some text", id:5})

Utiliser les caractères de substitution

Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6) a amené le support des caractères de substitution. Lorsque l'on passe en argument une chaîne à l'une des méthodes qui acceptent des chaînes de caractère, on peut utiliser ces caractères de substitution :

caractère de substitution description
%o or %O Affiche un lien hypertexte sur un objet JavaScript. Cliquer le lien ouvre l'inspecteur.
%d or %i Affiche un entier. Le formatage des nombres est supporté, par exemple console.log ("Foo% .2d", 1.1) affichera le nombre sous forme de deux chiffres significatifs avec un 0 : Foo 01
%s Affiche une chaîne de caractères.
%f Affiche un nombre réél. Le formatage est supporté, par exemple, console.log("Foo %.2f", 1.1) affichera un nombre avec 2 décimales : Foo 1.10 .

Chacun de ceux-ci ira chercher l'argument qui suit la chaîne à formater. Par exemple :

for (var i=0; i<5; i++) {
  console.log("Hello, %s. You've called me %d times.", "Bob", i+1);
}

L'affichage ressemblera à ceci :

[13:14:13.481] Hello, Bob. You've called me 1 times.
[13:14:13.483] Hello, Bob. You've called me 2 times.
[13:14:13.485] Hello, Bob. You've called me 3 times.
[13:14:13.487] Hello, Bob. You've called me 4 times.
[13:14:13.488] Hello, Bob. You've called me 5 times.

Donner un style à l'affichage de la console

Vous pouvez utiliser l'instruction "%c" pour appliquer du style CSS à l'affichage de la console :

console.log("This is %cMy stylish message", "color: yellow; font-style: italic; background-color: blue;padding: 2px");
 

 Note : Un certain nombre de propriétés CSS sont supportées par ce style; vous devriez expérimenter et voir lesquels s'avèrent utiles.

Using groups in the console

Requires Gecko 9.0(Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)

Vous pouvez utiliser des groupes imbriqués pour vous aider à vous repérer dans l'affichage. Pour créer un nouveau bloc, appelez console.group(). La méthode console.groupCollapsed() est similaire, mais elle crée un bloc qui sera réduit.

Note  : "Collapsed groups" ne sont pas supportés pour l'instant dans Gecko; La méthode groupCollapsed() est la même que group() en ce moment.

Pour quitter le groupe dans lequel on est, appeler console.groupEnd(). Par exemple, examinez ce code :

console.log("This is the outer level");
console.group();
console.log("Level 2");
console.group();
console.log("Level 3");
console.warn("More of level 3");
console.groupEnd();
console.log("Back to level 2");
console.groupEnd();
console.debug("Back to the outer level");

L'affichage ressemblera à ceci :

nesting.png

Timers

Requires Gecko 10.0(Firefox 10.0 / Thunderbird 10.0 / SeaMonkey 2.7)

Pour calculer la durée d'une opération spécifique, Gecko 10 a amené le supports des chronomètres dans l'objet console.  pour démarrer un chornomètre, appelez la méthode console.time() en lui donnant un seul paramètre, son nom. Pour arrêter le chronomètre et obtenir le temps écoulé en millisecondes, utilisez la méthode console.timeEnd(), en passant à nouveau le nom du chronomètre comme paramètre. Une seule page peut faire tourner un maximum de 10.000 chronomètres.

Par exemple, voici ce code :

console.time("answer time");
alert("Click to continue");
console.timeEnd("answer time");

affichera le temps pour l'utilisateur dont il a eu besoin pour faire disparaitre la fenêtre d'alerte :

timerresult.png

Notez que le nom du chronomètre est affiché deux fois, à son départ et quand il se termine.

Note: Il est important de noter que si vous vous servez de ceci pour enregistrer les durées du traffic réseau, le chronomètre renverra le temps total d'échanges, alors que les durées affichées dans l'onglet network représente seulement la durée à la réception du header. Si vous avez activer l'enregistrement de réponse du body, le temps listé pour la réponse du header et du body devrait correspondre à ce qu'affiche la sortie de la console.

Traces d'appel

L'objet console supporte aussi l'affichage d'une trace d'appels ; cela montre le chemin pris pour atteindre l'endroit auquel vous avez fait appel à la fonction console.trace(). Ce qui donne avec ce code :

foo();

function foo() {
  function bar() {
    console.trace();
  }
  bar();
}

L'affichage dans la console ressemblera à ceci :

Spécification

Specification Status Comment
Console API Standard évolutif Définition initiale.

Notes

  • Au moins dans Firefox, si une page définit un objet console, cet objet remplace celui créé dans Firefox.
  • Antérieur à Gecko 12.0, les méthodes de l'objet console ne fonctionnent que lorsque la console Web est ouverte. À partir de Gecko 12.0, la sortie est mise en cache jusqu'à ce que la console Web soit ouverte, puis affichée à ce moment-là.
  • Il est à noter que l'objet de console intégré de Firefox est compatible avec celui fourni par Firebug.

Voir aussi

Autres implémentations

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : loella16, Ostefanini, christophe.hurpeau, P45QU10U, fscholz
 Dernière mise à jour par : loella16,