Codectionary / Developer documentation / JavaScript

Console Methods Beyond log()

The console object offers several methods beyond the familiar console.log() for more effective debugging: console.table() for tabular data, console.group() for nested/collapsible logs, console.time()/timeEnd() for measuring performance, console.warn()/error() for severity-styled messages, and console.assert() for conditional logging.

Syntax

console.table(data)
console.group(label)
console.time(label)

Examples

console.table() for Structured Data

Displaying arrays of objects in a readable table format.

const users = [
  { name: "Alice", age: 25 },
  { name: "Bob", age: 30 }
];

console.table(users);
// Renders a formatted table with columns for name and age

console.group() for Organized Logs

Grouping related log messages together, collapsible in the DevTools console.

console.group("User Validation");
console.log("Checking email...");
console.log("Checking password...");
console.log("All checks passed");
console.groupEnd();

console.time() for Performance Measurement

Measuring how long a block of code takes to run.

console.time("dataProcessing");

// some expensive operation
for (let i = 0; i < 1000000; i++) { /* ... */ }

console.timeEnd("dataProcessing");
// "dataProcessing: 12.34ms"

Best practices

  • Use console.table() instead of console.log() when inspecting arrays of objects - it is dramatically easier to read
  • Use console.group()/groupEnd() to organize related log output during debugging of complex flows
  • Use console.warn() and console.error() instead of console.log() for messages that genuinely need visual distinction and severity
  • Remove or guard debug console statements before shipping to production, or use a proper logging library with configurable levels

At a glance

Purpose
Application logic and interaction
File extension
.js ยท .mjs
Runs in
Browsers and JavaScript runtimes
Usually used with
HTML, CSS and Web APIs

Specifications & further reading

Related JavaScript documentation