DEV Community

Cover image for Use Javascript console like pro
Suprabha
Suprabha

Posted on

Use Javascript console like pro

Every JavaScript developer has used `console.log("message")` .

It provides a simple debugging console that is similar to the JavaScript console mechanism provided by web browsers.

In this article we will talk about most of the console methods which everyone should start using.

All the following methods are available in the global instance console, so it is not necessary to require the console module.

Default: console.log( ) | info( ) | debug( ) | warn( ) | error( ) šŸ”„

These console will directly print the raw string with appropriate color based on the type of event that is provided to them.

console.log("console log")
console.info("console info")
console.debug("console debug")
console.warn("console warn")
console.error("console error")
Enter fullscreen mode Exit fullscreen mode

default console type

Styling console output šŸ‘»

You can use the %c directive to apply a CSS style to console output

console.log("%cText color is green and increased font size", "color: green; font-size: 2rem;")
Enter fullscreen mode Exit fullscreen mode

Styling console type

We can add %c multiple times.

console.log("Multiple styles: %cred %corange", "color: red", "color: orange", "Additional unformatted message");
Enter fullscreen mode Exit fullscreen mode

styling multiple console type

1. console.table( )

console.table ( ) allows us to generate a table inside a console. The input must be an array or an object which will be shown as a table.

let info = [["Suprabha"], ["Frontend Dev"], ["Javascript"]]
console.table(info)
Enter fullscreen mode Exit fullscreen mode

console table

2. console.group("group") & console.groupEnd("group")

To organize the console, let's use console.group() & console.groupEnd().

Using console group, your console logs are grouped together, while each grouping creates another level in the hierarchy. Calling groupEnd reduces one.

console.group()
    console.log("Test 1st message")
    console.group("info")
        console.log("Suprabha")
        console.log("Frontend Engineer")
    console.groupEnd()
console.groupEnd()
Enter fullscreen mode Exit fullscreen mode

console group and groupEnd

3. console.dir( )

Prints a JSON representation of the specified object.

let info = {
    "name": "Suprabha", 
    "designation": "Frontend Engineer",
    "social": "@suprabhasupi"    
}
console.dir(info)
Enter fullscreen mode Exit fullscreen mode

console dir

4. console.assert( )

Log a message and stack trace to console if the first argument is false.

It will only print the false argument. It does nothing at all if the first argument is true.

console.assert(false, "Log me!")
Enter fullscreen mode Exit fullscreen mode

Example:

let name = "supi"
let msg = "Its not a number"
console.assert(typeof msg === "number", {name: name, msg: msg})
Enter fullscreen mode Exit fullscreen mode

console assert

5. console.count ( )

This function logs the number of times that this particular call toĀ count()Ā has been called. This function takes an optional argumentĀ label.

IfĀ labelĀ is supplied, this function logs the number of timesĀ count()Ā has been called with that particularĀ label.

console.count("Hey")
console.count("Hey")
console.count("Hey")
console.count("Hey")
Enter fullscreen mode Exit fullscreen mode

console count with label

IfĀ labelĀ is omitted, the function logs the number of timesĀ count()Ā has been calledĀ at this particular line

for (let i = 0; i < 5; i++) {
    console.count()
}
Enter fullscreen mode Exit fullscreen mode

console count without label

6. console.time( ) and console.timeEnd( )

Check the performance of your code in execution time

console.time() is a better way to track the microtime taken for JavaScript executions.

console.time("Time")
let l = 0;
for (let i = 0; i < 5; i++) {
   l += i
}
console.log("total", l)
console.timeEnd("Time")
Enter fullscreen mode Exit fullscreen mode

console time and timeEnd

Reference 🧐

🌟 Twitter šŸ‘©šŸ»ā€šŸ’» suprabha.me 🌟 Instagram

Top comments (27)

Collapse
Ā 
5alidshammout profile image
5alidshammout • • Edited

after I did this, my chrome went into a proplem

setInterval(() => {console.count()}, 0)

Collapse
Ā 
sudarshansb143 profile image
sudarshan •

You will get dangerous email from Sundar Pichai :)

Collapse
Ā 
5alidshammout profile image
5alidshammout •

what do you mean?

Thread Thread
Ā 
iswiboni profile image
ISWIBONI •

its a joke

Collapse
Ā 
mojosef profile image
mojosef •

3 days on — what’s the count?

Collapse
Ā 
sunflower profile image
sunflowerseed •

lucky you are not spawning threads or processes

Collapse
Ā 
kevinmmansour profile image
Kevin M. Mansour •

DDOS Attack. :)

Collapse
Ā 
steebe profile image
Stephen Bass •

It seems you found & implemented, and then rewrote this featured original article on Hacker News: news.ycombinator.com/item?id=26779800

If this is the case, I'm glad you got something from this, but why not credit the original author given how similar your post is?

Additionally, the post I'm linking to above is one of many similar articles that started getting popular in 2017/2018 (on the same note as @ra1nbow1 's comment here). At some point we have to acknowledge when we're steering away from the spirit of sharing information in pursuit of internet points.

Collapse
Ā 
z2lai profile image
z2lai •

Great screenshots, the examples are very clear!

Your console screenshot for using console.dir() seems like it returns the same object format as using console.log(), instead of returning JSON. Is that how JSON looks like in the console? I'm not too sure what the difference is between console.dir() and console.log() on an object.

Collapse
Ā 
brianarn profile image
Brian Sinclair •

console.dir isn't technically emitting JSON, it's more that it's providing a way to interactively navigate through that object's properties.

It's the default approach that console.log will use on objects, but you can see a clear distinction when you use a DOM node instead.

If you were to console.log(document.body), you get an interactive version of the DOM in the console, because the console standard says to use an optimally useful format, which for the DOM is the same as console.dirxml(document.body).

But, if you console.dir(document.body) instead of getting the DOM representation, you get an Object representation and can navigate through the properties of the Object.

Collapse
Ā 
z2lai profile image
z2lai •

Thank you so much for the explanation, that is incredibly useful! I've always struggled with trying to read DOM element representations in console.

Collapse
Ā 
ra1nbow1 profile image
Matvey Romanov •

One more post about JS console

Collapse
Ā 
sunflower profile image
sunflowerseed •

ah... Javascript is spelled JavaScript... not that important but thought if we use it for 10 years, then may as well know the official name... I know... macOS, MacBook... it is all confusing...

Collapse
Ā 
rishitkhandelwal profile image
Rishit Khandelwal •

cool methods, I must remember to use these

Collapse
Ā 
enriqueedelberto profile image
Edelberto Enrique Reyes •

Thanks for sharing.

Collapse
Ā 
__manucodes profile image
manu •

Wow! Never even knew most of these functions!
Thanks for sharing!

Collapse
Ā 
steps0x29a profile image
Stefan Matyba •

Thanks, I didn't know most of that, but I'll remember for the next JS project

Collapse
Ā 
suprabhasupi profile image
Suprabha •

I am really glad you find this post useful ā˜ŗļø

Collapse
Ā 
acahuiche profile image
Alberto Cahuiche •

Thanks, great info