W3docs

JavaScript Console API

Die Console API ist ein unverzichtbares Werkzeug für Webentwickler: Sie ermöglicht das Debuggen, die Fehlerberichterstattung und das Logging in JavaScript-Anwendungen.

Einführung in die Console API

Die Console API ist die Sammlung der console.*-Methoden, mit denen JavaScript mit der Entwicklerkonsole kommunizieren kann — dem Panel, das Sie über die DevTools des Browsers (Chrome, Firefox, Edge, Safari) öffnen oder das Node.js in Ihrem Terminal ausgibt. Sie ist das am häufigsten verwendete Debugging-Werkzeug in JavaScript: Mit einer einzigen Zeile können Sie einen Wert inspizieren, eine Operation messen oder einen Stack-Trace ausgeben, ohne das Verhalten Ihres Programms zu verändern.

Diese Seite behandelt die Methoden, die Sie täglich verwenden werden — log, info, warn, error, table, dir, group, time, count, assert und trace — sowie die Formatspezifizierer (%s, %d, %c), die steuern, wie Werte ausgegeben werden.

Die Konsole ist global verfügbar, sodass Sie diese Methoden überall aufrufen können — in einem Browser-Skript, der DevTools-Konsole oder einer Node.js-Datei.

Grundlegendes Logging mit console.log()

console.log() gibt Informationen in der Konsole aus. Die Methode akzeptiert beliebig viele Argumente jeglichen Typs und trennt sie mit Leerzeichen — Strings, Zahlen, Arrays und Objekte werden alle automatisch formatiert.

javascript— editable

Ein Label neben einem Wert zu loggen ('Value of y:', y) ist die einfachste und gängigste Debugging-Technik — sie hält die Ausgabe lesbar, wenn mehrere Logs vorbeirollen.

Log-Ebenen: info, warn und error

console.info(), console.warn() und console.error() funktionieren genau wie console.log(), tragen jedoch einen Schweregrad. Der Browser formatiert jede Methode unterschiedlich (Warnungen erhalten einen gelben Hintergrund, Fehler einen roten) — und wichtig — die DevTools ermöglichen das Filtern nach Ebene, sodass Sie Rauschen ausblenden und nur Fehler anzeigen können, wenn sich eine Seite falsch verhält.

javascript— editable

Verwenden Sie console.warn() für Situationen, die behebbar sind, aber Aufmerksamkeit verdienen (eine veraltete Option, ein fehlendes optionales Feld), und console.error() für echte Fehler. Kombinieren Sie console.error() mit einer ordentlichen Fehlerbehandlung mit try...catch, damit Fehler sowohl gemeldet als auch behandelt werden.

Ausgabe mit Formatspezifizierern formatieren

Wenn das erste Argument einer console-Methode einen Formatspezifizierer enthält, werden die verbleibenden Argumente entsprechend eingesetzt. Die gängigen Spezifizierer sind:

  • %s — ein String
  • %d (oder %i) — eine ganze Zahl
  • %f — eine Gleitkommazahl
  • %o / %O — ein object
  • %c — CSS-Styling auf die Ausgabe anwenden (nur Browser)
javascript— editable

In Node.js wird das %c-Styling ignoriert, der Text wird aber trotzdem ausgegeben. Formatspezifizierer sind praktisch, wenn Sie eine saubere, satzartige Ausgabe statt kommagetrennte Werte wünschen.

Strukturierte Daten anzeigen

Tabellen mit console.table()

console.table() stellt ein Array von Objekten (oder ein object von Objekten) als sortierbare Tabelle dar — wesentlich einfacher zu lesen als verschachtelte console.log()-Ausgaben.

javascript— editable

Objekte inspizieren mit console.dir()

console.dir() gibt eine interaktive, aufklappbare Auflistung der Eigenschaften eines Objekts aus. Besonders nützlich ist es für DOM-Knoten: console.log(element) zeigt das gerenderte HTML, während console.dir(element) das Element als JavaScript-object mit allen seinen Eigenschaften anzeigt.

javascript— editable

Logs organisieren und zählen

Gruppieren mit console.group()

console.group() und console.groupEnd() rücken die Logs dazwischen ein und können sie im Browser einklappen — ideal zum Gruppieren verwandter Ausgaben während einer komplexen Debugging-Sitzung.

javascript— editable

Verwenden Sie console.groupCollapsed() anstelle von console.group(), um die Gruppe standardmäßig eingeklappt zu starten.

Zählen mit console.count()

console.count(label) gibt aus, wie oft die Methode mit diesem Label aufgerufen wurde — eine schnelle Möglichkeit zu sehen, wie oft eine Funktion ausgeführt oder ein Zweig durchlaufen wird, ohne eine Zählervariable zu pflegen.

javascript— editable

Assertions und Stack-Traces

Assertions mit console.assert()

console.assert(condition, message) gibt die Meldung nur aus, wenn die Bedingung falsy ist. Ist die Bedingung truthy, wird nichts ausgegeben — Sie können Plausibilitätsprüfungen also im Code belassen, ohne die Konsole zu überfüllen.

javascript— editable

Stack-Traces mit console.trace()

console.trace() gibt den aktuellen Call-Stack aus — die Kette von Funktionsaufrufen, die zu diesem Punkt geführt hat. Das ist der schnellste Weg, die Frage zu beantworten: „Wie ist die Ausführung hierher gelangt?"

javascript— editable

Leistung messen

console.time(label) startet einen Timer und console.timeEnd(label) stoppt ihn und gibt die vergangene Zeit in Millisekunden aus. Verwenden Sie für beide Aufrufe dasselbe Label. Dies ist eine leichtgewichtige Alternative zu performance.now(), um langsame Operationen zu identifizieren.

javascript— editable

Wie geht es weiter?

Die Console API ist ein Teil eines umfassenderen Debugging-Werkzeugkastens. Für Breakpoints, das Sources-Panel und den Rest der DevTools, siehe DOM-Debugging und Tools. Und während console-Aufrufe während der Entwicklung großartig sind, bevorzugen Sie beschreibende Code-Kommentare für Erklärungen, die dauerhaft im Quellcode verbleiben sollen — und denken Sie daran, lose console.log-Aufrufe vor dem Ausliefern zu entfernen.

Fazit

Die Console API bietet Ihnen eine schnelle, einrichtungsfreie Möglichkeit zu verstehen, was Ihr Code tut: log/info/warn/error für gestufte Meldungen, table und dir für strukturierte Daten, group und count zum Organisieren der Ausgabe, time für die Leistungsmessung sowie assert/trace zum Aufspüren und Erklären von Fehlern. Kombiniert mit Formatspezifizierern decken diese Methoden den überwiegenden Teil des alltäglichen JavaScript-Debuggings ab.

Übungen

Übung
Welche der folgenden Aussagen beschreiben die Fähigkeiten der JavaScript Console API zutreffend?
Welche der folgenden Aussagen beschreiben die Fähigkeiten der JavaScript Console API zutreffend?
Was this page helpful?