Most JavaScript developers are familiar with these basic functions of the console object: console.log(), .info(), .warn() and .error(). These functions dump a string or an object to the JavaScript console.
However, the console object has a lot more to offer. I’ll demonstrate a selection of the additional functionality, which is less known, but can be useful for development and debugging.
Tabular data
Arrays with tabular structure can be displayed with the console.table() function:
var timeseries = [ {timestamp: new Date('2016-04-01T00:00:00Z'), value: 42, checked: true}, {timestamp: new Date('2016-04-01T00:15:00Z'), value: 43, checked: true}, {timestamp: new Date('2016-04-01T00:30:00Z'), value: 43, checked: true}, {timestamp: new Date('2016-04-01T00:45:00Z'), value: 41, checked: false}, {timestamp: new Date('2016-04-01T01:00:00Z'), value: 40, checked: false}, {timestamp: new Date('2016-04-01T01:15:00Z'), value: 39, checked: false} ]; console.table(timeseries);
The browser will render the data in a table view:

This function does not only work with arrays of objects, but also with arrays of arrays.
Benchmarking
Sometimes you want to benchmark certain sections of your code. You could write your own function using new Date().getTime(), but the functions console.time() and console.timeEnd() are already there:
console.time('calculation'); // code to benchmark console.timeEnd('calculation');
The string parameter is a label to identify the benchmark. The JavaScript console output will look like this:
calculation: 21.460ms
Invocation count
The function console.count() can count how often a certain point in the code is called. Different counters are identified with string labels:
for (var i = 1; i <= 100; i++) { if (i % 15 == 0) { console.count("FizzBuzz"); } else if (i % 3 == 0) { console.count("Fizz"); } else if (i % 5 == 0) { console.count("Buzz"); } }
Here’s an excerpt of the output:
... FizzBuzz: 6 (count-demo.js, line 3) Fizz: 25 (count-demo.js, line 5) Buzz: 13 (count-demo.js, line 7) Fizz: 26 (count-demo.js, line 5) Fizz: 27 (count-demo.js, line 5) Buzz: 14 (count-demo.js, line 7)
Conclusion
The console object does not only provide basic log output functionality, but also some lesser-known, yet useful debugging helper functions. The Console API reference describes the full feature set of the console object.