--- title: Console slug: Web/API/Console tags: - API - Interface - Reference - console - débogage translation_of: Web/API/Console ---
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, {{domxref("Window")}} du cadre de navigation, {{domxref("WorkerGlobalScope")}} et ses variantes spécifiques pour les workers. Elle est exposée comme {{domxref ("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 {{anch("Methods", "méthodes")}} disponibles pour l'objet console
et donne quelques {{anch("Usage", "exemples d'utilisation")}}.
{{AvailableInWorkers}}
false
.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é.
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.
error();
group()
. Pour revenir au niveau précédent, appeler groupEnd()
.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()
.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 {{domxref("console.log()")}}, {{domxref("console.info()")}}, {{domxref("console.warn()")}}, et {{domxref("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.
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})
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})
Gecko 9.0 {{geckoRelease("9.0")}} 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.
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.
{{h3_gecko_minversion("Using groups in the console", "9.0")}}
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 :
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 chronomè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 :
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.
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 {{domxref("console.trace()")}}. Ce qui donne avec ce code :
foo(); function foo() { function bar() { console.trace(); } bar(); }
L'affichage dans la console ressemblera à ceci :
Specification | Status | Comment |
---|---|---|
{{SpecName('Console API')}} | {{Spec2('Console API')}} | Définition initiale. |