Signatur
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
undefined an.Beispiele
Mehrere Werte ausgeben
const user = { name: 'Anna', rolle: 'admin' };
const punkte = 42;
console.log('Benutzer:', user, 'Punkte:', punkte);
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);
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;'
);
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');
// 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()oderJSON.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:
%cfunktioniert 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()aufstdout,console.error()dagegen aufstderr. Das ist beim Umleiten der Ausgabe wichtig. - Die Methode gibt es in allen Browsern und in Web Workern. Ältere Versionen des Internet Explorers stellten
consolenur bei geöffneten Entwicklerwerkzeugen bereit.