Stylized browser DevTools console panel, Ethnus Codemithra article cover for JavaScript console methods.

10 JavaScript console methods every developer should know

Codemithra Team

Codemithra Team

Beyond console.log, the browser console has methods for tables, grouped output, counters, timers, call traces and conditional messages. Each one solves a specific debugging job faster than a plain log line. This guide covers ten built-in Console API methods. It explains what each one does, and when to use it instead of custom formatting code.

What the console actually is

The browser console is not just a place where console.log writes text. It is a live, read-eval-print view into the JavaScript running on the current page. Every major browser builds it into its developer tools. Open DevTools on any page and click the Console tab. From there, you can call any of these methods from your own code. You can also type an expression directly and see it evaluate.

The console renders directly in the browser, so it shows richer output than a plain string. Objects stay clickable and expandable. Arrays of objects can become tables, and related lines can group and collapse. The rest of this article works through ten methods that use those capabilities.

Where the console sits in the debug loop. Source code runs: The browser executes JavaScript on the page as normal. Then A console call fires: A console.log, console.table or other method runs at that line. Then DevTools renders it: The Console panel shows the value, grouped, tabled or timed as called. Then You read and edit: You read the output, change the source, and the loop repeats.
The console sits inside a short loop: run code, log something, read the output, edit the code.

The output methods: log, error, warn, info, debug

console.log() accepts more than one argument and prints each in order, with a space between them. It also supports format specifiers, such as %s for a string or %o for an object. These apply when the first argument contains them. The console.log reference on MDN documents both forms. console.error(), console.warn(), console.info() and console.debug() use the same rendering engine as console.log(). They differ mainly in the log level and icon the browser shows, per the Console interface reference.

Picking the right level pays off once a page logs more than a handful of lines. DevTools filters the console by level. A console.warn() stands out from ordinary console.log() noise. A genuine console.error() stays visible even when you filter everything else out.

console.log("Cart total:", total);
console.warn("Discount code expired, ignoring it");
console.error("Payment request failed", response.status);

Showing data as a table with console.table()

console.table(data, columns) renders array or object data as a table instead of a nested, hard-to-scan object dump. The optional columns argument limits which columns appear in the table. See the console.table reference on MDN for the full syntax. Reach for this method whenever you log a list of similar records, such as API results or form fields.

const students = [
  { name: "Asha", course: "MERN Full Stack", hours: 42 },
  { name: "Rahul", course: "JaWEsome", hours: 30 },
  { name: "Meera", course: "MERN Full Stack", hours: 55 }
];
console.table(students, ["name", "hours"]);
// Renders a table with only the name and hours columns

Grouping console output with console.group(), groupCollapsed() and groupEnd()

console.group() indents every following console call by one level, until you call console.groupEnd(). console.groupCollapsed() does the same, but the group starts collapsed and a reader must click it open. See the console.group reference on MDN for details. Use grouping to keep a busy console scannable when one function logs several related lines.

console.group("Validating form");
console.log("Checking email:", email);
console.log("Checking password length:", password.length);
console.groupEnd();

Counting calls with console.count() and console.countReset()

console.count(label) logs how many times it has run with that label. It uses the label "default" when you give none. A separate console.countReset(label) resets one counter back to zero, per the console.count reference on MDN. This replaces a hand-rolled counter variable when you just want to know how often a function or branch runs.

function renderCard() {
  console.count("renderCard called");
}
renderCard(); // renderCard called: 1
renderCard(); // renderCard called: 2
console.countReset("renderCard called");

Timing code with console.time() and console.timeEnd()

console.time(label) starts a named timer. console.timeEnd(label) stops it and prints the elapsed time in milliseconds. A page may run up to 10,000 timers at once, each with its own label. See the console.time reference on MDN for the full detail. Treat that figure as a scale ceiling, not a target. Most debugging sessions use one or two timers around the code path you suspect is slow.

console.time("sortStudents");
students.sort((a, b) => a.hours - b.hours);
console.timeEnd("sortStudents");
// sortStudents: 0.42ms

Tracing calls with console.trace()

console.trace() prints a stack trace from the point where you call it. It shows the chain of function calls that led there. Some browsers also include async call chains, per the console.trace reference on MDN. Add it inside a shared function when you need to know which caller triggered a run. This beats guessing from the code alone.

function saveDraft() {
  console.trace("saveDraft called from:");
}
function onInputChange() {
  saveDraft();
}
onInputChange();
// Prints the call stack: saveDraft -> onInputChange -> (caller)

Asserting conditions with console.assert()

console.assert(assertion, message) writes an error message only when assertion is false. It prints nothing at all when the assertion is true, as the console.assert reference on MDN shows. It does not print a stack trace the way console.trace() does. Use it as a quiet check you leave in code. It stays silent while an assumption holds, and speaks up the moment it does not.

console.assert(total >= 0, "Total should never be negative", total);
// Nothing prints while total is 0 or more
// Prints "Assertion failed: Total should never be negative -5" once it goes negative

Inspecting objects with console.dir()

console.dir(object) prints an interactive, hierarchical list of the properties that belong directly to the object. That differs from the pretty, inspector-style rendering that console.log() gives the same object. See the console.dir reference on MDN for details. This matters most on DOM elements. console.log(element) shows the element as it renders on the page. console.dir(element) shows it as a plain object instead, with properties you can expand one by one.

const button = document.querySelector("button");
console.log(button); // Shows the rendered element, like the Elements panel
console.dir(button); // Shows a plain property list: onclick, style, children...

Comparison: which method to reach for

Ten console methods at a glance. log / error / warn / info / debug: Same rendering, different log level so you can filter output by severity.. console.table(): Renders an array or object as a table, with an optional columns list to trim fields.. console.group() / groupEnd(): Indents a block of related log lines one level until groupEnd is called.. console.count() / countReset(): Counts calls sharing a label, and resets one counter on demand.. console.time() / timeEnd(): Starts and stops a named timer and prints the elapsed milliseconds.. console.trace(): Prints the call path that led to this line, useful for shared functions.. console.assert(): Writes a message only when a condition is false, and stays silent otherwise.. console.dir(): Prints an object's own properties as a plain list, including DOM nodes.
Ten methods, one job each. Full reference: the Console API documentation on MDN.
Method Purpose One-line example
console.log/error/warn/info/debug Print output at a chosen level for filtering console.warn("Slow query", ms)
console.table() Show array or object data as a table console.table(students)
console.group() / groupEnd() Indent related lines together console.group("Init")
console.count() / countReset() Count calls per label console.count("render")
console.time() / timeEnd() Measure elapsed time console.time("sort")
console.trace() Print the call path to this line console.trace("called from:")
console.assert() Log only when a condition fails console.assert(total >= 0)
console.dir() List properties that belong to an object console.dir(document.body)

Try it: pick the right method for a bug you have now

Take a function from a project you have. Before you write a single log line, decide which method fits your question.

To know how often the function runs, use console.count(). To know who calls it, use console.trace(). To know how long it takes, wrap it in console.time() and console.timeEnd(). If it processes a list, log that list with console.table() instead of console.log(). Doing this once on a real function teaches the methods faster than reading about them.

Cleaning up before production

Debug-only console calls left in a shipped bundle slow the page down slightly. They can also leak internal details to anyone with DevTools open. Build the habit of deciding, as you write a console call, whether it belongs only in development. A genuine console.error() on a failed request can still stay for production diagnostics. Modern build tools can strip console calls from a production build through minifier settings. Check the current minification options in your build tool rather than let debug logging ship by accident.

Where this fits in an Ethnus program

Console debugging sits on top of JavaScript, DOM and BOM fundamentals. The JaWEsome program at Codemithra teaches these topics. Its published syllabus lists "BOM (Browser Object Model)", "DOM (Document Object Model)" and "Advanced working with functions". The MERN Full Stack program carries the same JavaScript, BOM and DOM topics further.

Its React and Node.js modules each include a dedicated debugging topic: "Debugging React Apps" and "Debugging Node JS Application". These console methods apply directly there, on a real front end and back end. Both programs deliver live sessions with step-by-step walkthroughs and instant doubt clearing. You can check a method covered here against an explanation from a trainer in class.

Frequently asked questions

Is console.table slower than console.log for large arrays?

The Console API documentation does not publish a performance comparison between methods, so no specific figure is available here. As a general practice, keep debug-only calls out of production builds regardless of which method you use.

Does console.assert stop code execution when the assertion fails?

No. It only writes a message to the console when the assertion is false. The MDN reference confirms this. Unlike a thrown exception, it does not throw an error or stop the script.

Can I nest console.group calls?

Yes. Calling console.group() again before the matching console.groupEnd() adds another indent level. This is useful for grouping the internal steps of a function inside a larger operation.

Do these methods work the same in every browser?

The core methods here belong to the standard Console interface. Major browsers document them, though exact formatting in the DevTools panel can vary slightly between them.

Practise these methods inside a real project rather than a script you throw away. The JaWEsome program at Codemithra covers the JavaScript, DOM and BOM foundations these methods sit on. The MERN Full Stack program puts them to work in its React and Node.js debugging topics.

About the Author

Read More

Ethnus User Agreement

I agree to submit my personally identifiable information to Ethnus, who may use it to communicate regarding their events, courses, and other services through various media including phone calls, text messages, email, and social media. I also agree with Ethnus' Privacy Policy and Terms of Service.

I agree with Ethnus sharing my personal data, including email address, with Salesforce family of companies, who may contact me for sales and marketing purposes and as described in Salesforce's Privacy Statement.

Privacy Policy

This Privacy Notice describes how we collect and use your personal information in relation to Ethnus websites, applications, products, services, events, and experiences that reference this Privacy Notice (together, "Ethnus Offerings").

This Privacy Notice does not apply to the "content" processed, stored, or hosted by our customers using Ethnus Offerings in connection with an Ethnus account. This Privacy Notice also does not apply to any products, services, websites, or content that are offered by third parties or have their own privacy notice.

Personal Information We Collect

We collect your personal information in the course of providing Ethnus Offerings to you.

Here are the types of information we gather:

        a) Information You Give Us: We collect any information you provide in relation to Ethnus Offerings. Click here to see examples of information you give us. Example: Name, email, phone, etc.

        b) Automatic Information: We automatically collect certain types of information when you interact with Ethnus Offerings. Example: IP address, location, browser identity, etc.

        c) Information from Other Sources: We might collect information about you from other sources, including service providers, partners, and publicly available sources. Example: marketing analytics, keywords, etc.

How We Use Personal Information

We use your personal information to operate, provide, and improve Ethnus Offerings. Our purposes for using personal information include:

        a) Provide Ethnus Offerings: We may use your personal information to provide and deliver Ethnus Offerings and process transactions related to Ethnus Offerings, including registrations, subscriptions, purchases, and payments.

        b) Measure, Support, and Improve Ethnus Offerings: We use your personal information to measure use of, analyze the performance of, fix errors in, provide support for, improve, and develop Ethnus Offerings.

        c) Recommendations and Personalization: We use your personal information to recommend Ethnus Offerings that might be of interest to you, identify your preferences, and personalize your experience with Ethnus Offerings.

        d) Comply with Legal Obligations: In certain cases, we have a legal obligation to collect, use, or retain your personal information.

        e) Communicate with You: We use your personal information to communicate with you in relation to Ethnus Offerings via different channels (e.g., by phone, email, chat) and to respond to your requests.

        f) Marketing: We use your personal information to market and promote Ethnus Offerings. We might display interest-based ads for Ethnus Offerings.

        g) Purposes for Which We Seek Your Consent: We may also ask for your consent to use your personal information for a specific purpose that we communicate to you.

Cookies

To enable our systems to recognize your browser or device and to provide Ethnus Offerings, we use cookies.

How We Share Personal Information

Information about our customers is an important part of our business and we are not in the business of selling our customers' personal information to others. We share personal information only as described below and with Ethnus Consultancy Services Private Limited, . and its affiliates that are either subject to this Privacy Notice or follow practices at least as protective as those described in this Privacy Notice.

Transactions Involving Third Parties: We make available to you services, software, training, and content provided by third parties for use on or through Ethnus Offerings. You can tell when a third party is involved in your transactions, and we share information related to those transactions with that third party. For example, you can order services, software, and content from sellers using the Authorized Training Partner's marketplace and we provide those sellers information to facilitate your subscription, purchases, or support.

Other than as set out above, you will receive notice when personal information about you might be shared with third parties, and you will have an opportunity to choose not to share the information.

How We Secure Information

        a) We protect the security of your information during transmission to or from websites, applications, products, or services by using encryption protocols and software.

        b) We maintain physical, electronic, and procedural safeguards in connection with the collection, storage, and disclosure of personal information.

Internet Advertising and Third Parties

Ethnus Offerings may include third-party advertising and links to other websites and applications. Third party advertising partners may collect information about you when you interact with their content, advertising, or services. For more information about third-party advertising, including interest-based ads, please read our Interest-Based Ads notice.

Access and Choice

You have choices about the collection and use of your personal information. Many Ethnus Offerings include settings that provide you with options as to how your information is being used. You can choose not to provide certain information, but then you might not be able to take advantage of certain Ethnus Offerings.

        a) Communications: If you do not want to receive promotional messages from us, please unsubscribe or adjust your communication preferences in the emails.

        b) Advertising: If you don't want to see interest-based ads, please adjust your Advertising Preferences.

        c) Browser and Devices: The Help feature on most browsers and devices will tell you how to prevent your browser or device from accepting new cookies, how to have the browser notify you when you receive a new cookie, or how to disable cookies altogether.

Children's Personal Information

We don't provide Ethnus Offerings for purchase by children. If you're under 18, you may use Ethnus Offerings only with the involvement of a parent or guardian.

Retention of Personal Information

We keep your personal information to enable your continued use of Ethnus Offerings, for as long as it is required in order to fulfill the relevant purposes described in this Privacy Notice, as may be required by law (including for tax and accounting purposes), or as otherwise communicated to you. How long we retain specific personal information varies depending on the purpose for its use, and we may delete your personal information in accordance with applicable law.

Contacts, Notices, and Revisions

If you have any concern about privacy at Ethnus, you may also contact us at the addresses below:

Ethnus Consultancy Services Pvt Ltd,

SST Chambers, No.151/17/1 Second Floor, 36th Cross Rd, 5th Block, Jayanagar, Bengaluru, Karnataka 560041

Or, email us at [email protected]

Or call us at: +91 - 8929 334 324

You will find the updated contact information on our website: www.ethnus.com/contact/

If you interact with Ethnus Offerings on behalf of or through your organization, then your personal information may also be subject to your organization's privacy practices, and you should direct privacy inquiries to your organization.

Our business changes constantly, and our Privacy Notice may also change. You should check our website frequently to see recent changes. You can see the date on which the latest version of this Privacy Notice was posted. Unless stated otherwise, our current Privacy Notice applies to all personal information we have about you and your account. We stand behind the promises we make, however, and will never materially change our policies and practices to make them less protective of personal information collected in the past without informing affected customers and giving them a choice.

Terms & Conditions

This Privacy and Security Policy is provided for the benefit of customers and clients of Ethnus Consultancy Services Private Limited. ("Ethnus") as well as other consumers and parties who use Ethnus and/or its website(s), particularly codemithra.com ("Website", "www.codemithra.com", "Codemithra" or "Ethnus Codemithra"), and/or applications ("Apps") (collectively, "Ethnus Services" or "Ethnus Platform").

Since Ethnus serves several different audiences, customers find it helpful to read the Terms of Use that apply specifically to them based upon the purpose for which they use Ethnus. For this reason, we link to three separate agreements below for employer customers, job seeker customers, and staffing customers, respectively.

For your convenience, we define each of these audiences that Ethnus serves as follows:

"Employer Customer" means an entity using Ethnus Services that is seeking to hire an individual as an employee and/or independent contractor to be employed by it directly.

"Job Seeker Customer" means an individual using Ethnus Services who is seeking to be employed as an employee or independent contractor by an employer.

"Staffing Customer" means a staffing company using Ethnus Services that provides staffing services to their own Staffing Clients.

So long as your use of the Ethnus website and services remains within the scope of the particular audience or customer for which you began using Ethnus (e.g. a job seeker does not use Ethnus as an employer, or an employer does not use Ethnus as a job seeker), the complete Terms of Use applicable to your use of the Ethnus website and services is contained within the applicable Terms of Use linked below.

Employer Terms of Use

The following Terms of Use apply to any Ethnus Employer Customer seeking to hire employees or independent contractors for its own business. If you seek to find employees or independent contractors for the benefit of your clients (and not yourself), you need to review the Terms of Use specifically for our Ethnus Staffing Customers accessible at www.Codemithra.com/terms/staffing.

Ethnus, Inc. ("Ethnus") provides online services through which employers and staffing companies seeking employees and independent contractors can efficiently and effectively review and interview candidates. Ethnus provides these services and its suite of features and products through its Apps and Website (collectively, "Ethnus Services") subject to these terms of use ("Terms of Use") and the agreements incorporated herein.

Your privacy is very important to us. We designed our accompanying Privacy and Security Policy to provide important disclosures about how your information will be used by Ethnus in providing you Ethnus Services. These Terms of Use expressly incorporate our Privacy and Security Policy.

Please read these Terms of Use and our Privacy and Security Policy carefully before using any of the diverse Ethnus Services. By visiting the Website, installing any of the Apps, and/or using any of the Ethnus Services, you shall have affirmed your agreement to these Terms of Use.

1. Definitions

2. Modifications - Will Ethnus ever modify these Terms of Use?

3. Ethnus Services - What are the Ethnus Services?

4. Video Content and Services - How and when do you record videos?

5. Pricing, Payments, and Billing - How and when will I be billed for Ethnus Services?

6. Objectionable Content - What if I find content to be objectionable?

7. Customer Conduct

8. Intellectual Property

9. DMCA Policy

10. Reserved for Future Use

11. Resale of Services

12. Indemnification

13. Disclaimer of Warranties

14. Third Party Links and Products

15. Limitations of Liability

16. Exclusions and Limitations

17. General Terms

1. Definitions

"Consumer" means any individual or entity that uses any of the Ethnus Services. Where applicable, the term "Consumer" shall encompass all Ethnus Customers.

"Content" means all material, whether publicly posted or privately transmitted, available on or through any of the Ethnus Services.

"Customer" means, for purposes of this Terms of Use, You, a Job Seeker Customer.

"Customer Content" means any Content uploaded to and/or created through the Ethnus Services by a Ethnus Customer.

"Employer Customer" means an entity using Ethnus Services that is seeking to hire an individual as an employee and/or independent contractor to be employed by it directly.

"GDPR" means the European Union's General Data Protection Regulation.

"Job Seeker Customer" means an individual using Ethnus Services who is seeking to be employed as an employee or independent contractor by an employer.

"Profile Video" means a promotional video created by a Job Seeker Customer to promote themselves as a candidate employee and/or independent contractor. It is not an interview. The Job Seeker Customer completes this independently and on their own.

"Software" means any necessary software used in connection with the Ethnus Services.

"Ethnus Account" means an account associated with a Ethnus Customer who uses or has used Ethnus Services.

"Ethnus Content" means any Content excluding Customer Content and Video Content in which Ethnus does not participate.

"Ethnus Customer" means any person who uses or has used Ethnus Services including, but not limited to, Employer Customers, Job Seeker Customers, and Staffing Customers.

"Ethnus Services" means the suite of features, products and services offered through Ethnus, its Apps, its App Services, the Website, and the Website Services.

"Ethnus Trademarks" means any trademarks, tradenames, logos, and other commercial designs of Ethnus or licensed to Ethnus, whether or not formal registration exists including, but not limited to, "Ethnus."

"Staffing Clients" means third-party employer clients of Staffing Customers.

"Staffing Customer" means a staffing company using Ethnus Services that provides staffing services to their own Staffing Clients.

"Strategic Partners" means those trusted partners that Ethnus employs, engages, or retains to perform functions and/or provide services on its behalf.

"Sub Accounts" means subsidiary accounts created for or by an Employer Customer or Staffing Customer ("such as a consultant group or employer") under its primary account.

"Username" means the valid email address provided by each Ethnus Customer to be used as their username or login identification.

"Video Content" means any video content created by or associated with any Ethnus Customer accessible on and through Ethnus Services including, but not limited to, Profile Videos, Video Questions, Video Interviews, and Welcome Videos.

"Video Interview" means an interview completed through Ethnus Services using a video or "web" camera that an Employer Customer or Staffing Customer requests a Job Seeker Customer complete. A Video Interview may involve a Job Seeker Customer alone or with other participants from an Employer Customer or Staffing Customer. A Video Interview may be pre-recorded by a Job Seeker in response to questions or occur live at which time it would be recorded.

"Video Question" means a question recorded in video and audio that can be sent to potential employee and independent contractor candidates by an Employer Customer or Staffing Customer.

"Website" means all of the content, information and services (in any format whatsoever) accessible through the World Wide Web at the domain name Codemithra.com.

"Website Services" means the services provided by Ethnus through the website at the domain name Codemithra.com, hire.li, and any of our other websites that may be used from time to time