Start · Sprachen · JavaScript · Referenz · console.log()

console.log()

Methode

Die statische Methode <code>console.log()</code> gibt eine allgemeine Nachricht oder beliebige Werte in der Konsole aus, zum Debuggen und Protokollieren.

seit JavaScript Baseline: alle Browser, Node.js (alle Versionen); Kategorie: webapi

Signatur

console.log(val1, /* …, */ valN) / console.log(msg, subst1, /* …, */ substN)

Beschreibung

console.log() ist das wichtigste Werkzeug, um schnell Werte zu prüfen. Die Methode nimmt beliebig viele Argumente beliebigen Typs an und gibt sie durch Leerzeichen getrennt in der Konsole aus: in den Entwicklerwerkzeugen des Browsers, auf stdout in Node.js oder im Log eines Workers.

Ist das erste Argument ein String, kann es Platzhalter enthalten, die durch die folgenden Argumente ersetzt werden: %s (String), %d bzw. %i (Ganzzahl), %f (Gleitkommazahl), %o (Objekt mit optimaler Darstellung), %O (generisches, aufklappbares Objekt) und %c (CSS-Stil, nur im Browser). Mit %% gibst du ein wörtliches Prozentzeichen aus.

Objekte und Arrays zeigen Browser als interaktive, aufklappbare Bäume an. Node.js formatiert sie mit util.inspect(). Für strukturierte Daten eignet sich console.table() oft besser, für Fehler und Warnungen die Methoden console.error() und console.warn(). Diese lassen sich in den Entwicklerwerkzeugen getrennt filtern.

Parameter

Name Typ Default Beschreibung
$val1 … valN any Beliebige Werte, die durch Leerzeichen getrennt ausgegeben werden. Objekte werden interaktiv bzw. per util.inspect() dargestellt.
$msg string String mit optionalen Platzhaltern (%s, %d, %i, %f, %o, %O, %c).
$subst1 … substN any Werte, die der Reihe nach die Platzhalter in msg ersetzen. Überzählige Werte werden einfach angehängt.

Rückgabewert

Typ
undefined
Beschreibung
Kein Rückgabewert. Deshalb zeigt die Browser-Konsole nach dem Aufruf undefined an.

Beispiele

Mehrere Werte ausgeben

const user = { name: 'Anna', rolle: 'admin' };
const punkte = 42;

console.log('Benutzer:', user, 'Punkte:', punkte);
Benutzer: { name: 'Anna', rolle: 'admin' } Punkte: 42

Platzhalter für formatierte Ausgabe

const datei = 'bericht.pdf';
const groesseKB = 1536.789;
const versuche = 3.9;

console.log('Datei %s geladen: %f KB nach %d Versuchen (100%%)', datei, groesseKB, versuche);
Datei bericht.pdf geladen: 1536.789 KB nach 3 Versuchen (100%)

Gestylte Ausgabe im Browser mit %c

console.log(
  '%cAchtung:%c Diese Konsole ist nur für Entwickler.',
  'color: white; background: crimson; font-weight: bold; padding: 2px 4px;',
  'color: inherit;'
);
Achtung: Diese Konsole ist nur für Entwickler. (erster Teil rot hinterlegt)

Momentaufnahme statt Live-Referenz

const warenkorb = { artikel: [] };

// Nur eine Referenz: Der Browser zeigt beim Aufklappen evtl. den späteren Zustand
console.log(warenkorb);

// Momentaufnahme des aktuellen Zustands
console.log(structuredClone(warenkorb));
console.log(JSON.stringify(warenkorb));

warenkorb.artikel.push('Buch');
{ artikel: [] } { artikel: [] } {"artikel":[]}

// Wichtig · Fallstricke

  • Live-Referenzen: Browser werten ausgegebene Objekte oft erst beim Aufklappen aus. Dann siehst du den aktuellen Zustand, nicht den zum Zeitpunkt des Aufrufs. Für eine Momentaufnahme hilft structuredClone() oder JSON.stringify().
  • Performance: Viele Aufrufe in engen Schleifen bremsen spürbar, besonders bei geöffneten Entwicklerwerkzeugen. Außerdem halten geloggte Objekte Speicher fest. Im Produktivcode solltest du Logs entfernen oder per Build-Werkzeug entfernen lassen (z. B. mit der Terser-Option drop_console).
  • Datenschutz/Sicherheit: Gib keine Tokens, Passwörter oder personenbezogenen Daten aus. Die Konsole ist für jeden Nutzer einsehbar, und Logs landen in Node.js oft in zentralen Log-Systemen.
  • Plattformunterschiede: %c funktioniert nur in Browsern. Node.js ignoriert den Platzhalter und verwirft das zugehörige Argument. Die Darstellung von Objekten unterscheidet sich zwischen Browser und Node.js.
  • In Node.js schreibt console.log() auf stdout, console.error() dagegen auf stderr. Das ist beim Umleiten der Ausgabe wichtig.
  • Die Methode gibt es in allen Browsern und in Web Workern. Ältere Versionen des Internet Explorers stellten console nur bei geöffneten Entwicklerwerkzeugen bereit.