How to Write a JavaScript Comment – Clean & Practical Code

When developing any sort of project, occasionally you want to write code or notes that you don’t want the computer to read. Whether this is to explain something to yourself, helps you test things, or something in-between, these sorts of additions are not only very useful, but quite common in professionally developed programs. If you haven’t guessed it yet, we’re talking about comments. And, in this JavaScript comment tutorial, we’re going to go over just how to use comments in your programs.

Whether you’re building a website or HTML5-based games, this tutorial will help you enhance how you work with your code and with JavaScript in general.

About JavaScript Comments

JavaScript has two simple ways to comment code: single line ( //comment here  ) and multi-line ( /*comment here*/  ). While code is for computers, comments are for people (including your future-self) and are completely ignored by the JavaScript interpreter (i.e. it has no effect on the executing code).

When you’re immersed in a section of code, it’s easy to remember the context. However, when a different developer (or your future-self) returns to existing code, it’s also easy to forget exactly what the code was intended to be doing in the context of the program as a whole. This is where JavaScript comments shine.

However, comments also have another functionality. You may have heard developers mention them “commenting out” pieces of code. Per the above, these comments aren’t read by the program – and it creates a quick way for developers to isolate parts of the code to debug them. Commenting out in JavaScript follows the same procedure regardless of how you use the comments, though.

Single-line JavaScript Comments

For single-line JavaScript comments, the JavaScript interpreter ignores everything to the right of the //  until the end of the line. These comments generally describe what the next line of code is doing or when located on the same line as a code statement (known as an inline comment). This provides a succinct annotation.

Per the above, though, you can also comment out in JavaScript to debug as well, so that’s another use case for this situation.

Syntax for Single-line JavaScript Comments

As mentioned, single-line JavaScript comments use two forward slashes ( // ) to tell JavaScript to ignore all text that follows on the same line. The important thing to remember is that “comments are for people; not computers”; so just because you can write a long line of text, doesn’t mean you should. With this in mind let’s consider some Best Practices.

Bear in mind these best practices apply to documentation types of comments. For commenting out in JavaScript for debugging purposes, the assumption is that the comment is temporary and you will correct the code once you figure out the problem.

Best Practices for Single-line JavaScript Comments

Most JavaScript comments should be placed on the line above the code being documented.

// Prints "Hello World!" to the console
console.log("Hello World!");

Concise comments or annotations, especially referring to the result of a JavaScript statement, can be placed after the code it describes as long as it’s on the same line. This is generally referred to as an inline comment.

console.log("Hello World!"); // Prints "Hello World!" to the console

While technically valid, single-line JavaScript comments containing a lot of text can be difficult to read and should therefore be avoided.

// I am a single line comment. Everything that follows, on this same line, is ignored by the computer. In this example, I am located above the <a href="https://gamedevacademy.org/how-to-write-javascript/" title="How to Write JavaScript – Master What is JavaScript Fast" target="_blank" rel="noopener">JavaScript code</a> I'm documenting. The code that follows prints "Hello World" to the console.
console.log("Hello World!");

While technically valid, all “inline comments” comments containing a lot of text will be difficult to read and should therefore be avoided.

console.log("Hello World!"); // I am a single line comment. Everything that follows, on this same line, is ignored by the computer. In this example, I am located on the same line as the JavaScript code I'm documenting. As long as I'm after the JavaScript code; the code will still execute. The code before me prints "Hello World" to the console.

Multi-line JavaScript Comments

Syntax for Multi-line Comments

To help make comments easier to understand, JavaScript provides a second alternative. The syntax ( /* comments go here */ ) is a much more flexible option that allows you to optionally break your comment into multiple lines. In addition to being able to tell the computer to ignore multiple lines, the other significant difference is that instead of ignoring what follows, this syntax ignores what is in between the opening and closing forward slash-asterisk combination (/ ignored by computer */ ).

This type of comment, sometimes called “block comments” can be on the same line, broken over multiple lines, or even placed in the middle of a JavaScript statement (though not a good idea). With this in mind, let’s consider some Best Practices.

Once again, a JavaScript block comment can also be used to debug (for example, you need to wipe out a whole function to see what function is even malfunctioning). So, these best practices are mostly about documentation.

Best Practices for Multi-line JavaScript Comments

All multiline JavaScript comments should be placed above the code being documented to improve readability.

/* I can exist as a single line */
console.log("Hello World!");

This is especially true for comments that are broken out over multiple lines.

/*
I can span multiple lines
The code that follows me prints "Hello World" to the console.
*/
console.log("Hello World!");

While technically valid using the multiline syntax ( /* */ ), “inline JavaScript comments” containing a lot of text can be difficult to read (as is the theme here with inline comments) and should therefore be avoided.

console.log("Hello World!"); /* I am a single line comment. Everything that follows, on this same line, is ignored by the computer. In this example, I am located on the same line as the JavaScript code I'm documenting. As long as I'm after the JavaScript code; the code will still execute. The code before me prints "Hello World" to the console.*/

While technically valid using the multiline syntax ( /* */ ), JavaScript comments should not be placed in the middle of JavaScript statements since they can become very confusing.

console.log("Hello " + /* I can be in the middle of a statement but this makes me hard to read so should be avoided unless you have a very good reason.*/ + "World!");

Development Use: Pseudocode JavaScript Comments

JavaScript comments can be used as a form of pseudocode to outline intention prior to writing actual code. Pseudocode outlines the logical steps your code will take rather than the code itself.

// function to greet user
function sayHello(name) {
  // define salutation
  // define punctuation
  // create string to return
  // return result to calling function
}
/*
1. execute function
2. log result to console
*/

With your plan in place, you can now code the details.

// function to greet user
function sayHello(name) {
  // define salutation
  const returnPrefix = `Hello `;
  // define punctuation
  const returnSuffix = `!`;
  // create string to return
  const returnString = returnPrefix + name + returnSuffix;
  // return result to calling function
  return returnString;
}
/*
1. execute function
2. log result to console
*/
console.log(sayHello("<a class="wpil_keyword_link" href="https://gamedevacademy.org/how-to-learn-coding-for-beginners/" target="_blank" rel="noopener" title="Game Dev" data-wpil-keyword-link="linked">Game Dev</a>"));

Document Use: DocString Comments

JavaScript DocString comments clarify what the code that follows it does. It generally includes the what, why, and sometimes who – but never the how. They also serve to document inputs, outputs, and even the name of the developer as well as many other optional, but specific, details. JavaScript DocString Comments are located directly above the code block being documented and follow a format similar to multi-line comments.

Syntax for Documentation JS Comments

The syntax starts with /** , ends with */ , and each line within the block starts with an asterisk * . Special tags are noted within the block and start with the @ symbol such as parameters ( @param ). DocStrings identify what parameters the function expects and what it returns as well as a long list of optional details such as who wrote or modified the code last, return value and version number to name a few (https://jsdoc.app/ contains a long list of tags as well as examples).

/**
 * function says hello to user
 * @author  Cool Dev
 * @param   {String} name   - Name to greet
 * @returns {String}        - Hello message
 */
function sayHello(name) {
  return `Hello ${name}!`;
}
console.log(sayHello("Game Dev"));

Generate External Documentation

DocStrings also have added benefits including allowing you to document your code alongside the actual code itself as well as the ability to generate external documentation, in the form of an HTML webpage, based on your source code using tools such as JSDoc (https://jsdoc.app/).

Debug Use: JavaScript Comment Out

As mentioned before, in addition to commenting your code in a documentation capacity, you can also comment out JS code. This use of the comment syntax allows you to prevent code from running without actually having to delete it. This is valuable for testing and debugging your code help to pinpoint sources of errors and isolate bugs simply by placing // in front of an executable line or surrounding a block of code with /**/ .

For example, when tracking down bugs, comment out lines potentially causing the issue. When code runs without breaking you’ve found the offending line and can investigate what’s happening.

console.log("good code");
// console.log("code with error");

You can prevent execution of a single line of code…

function sayHello(name) {
  // return `Hello ${name}!`;
  const returnPrefix = `Hello `;
  const returnSuffix = `!`;
  const returnString = returnPrefix + name + returnSuffix;
  return returnString;
}
console.log(sayHello("Game Dev"));

… or prevent execution of several lines of code.

function sayHello(name) {
  /* const returnPrefix = `Hello `;
  const returnSuffix = `!`;
  const returnString = returnPrefix + name + returnSuffix;
  return returnString; */
  return `Hello ${name}!`;
}
console.log(sayHello("Game Dev"));

Risks of Using JavaScript Comments: Out-of-Date Comments

Comments are static! While code is often updated, refactored, or removed. It is very important to keep comments up-to-date with code changes.

Other developers, or your future self, will naturally assume comments are up-to-date and valid. The consequences of these assumptions proving wrong can cause wasted time, energy, and money – worse they can introduce significant risk! Outdated comments can be worse than no comments at all so remember to maintain and update comments whenever associated code is updated or removed.

JavaScript Commenting Tips

Keyboard Shortcuts

Most code editors have a keyboard shortcut to help you quickly comment out a single line ( Ctrl + / for Windows and Cmd + / for Mac ). You can also highlight a block of code and use the keyboard shortcut to comment out all selected lines.

Best Practices

JavaScript comments are not intended to explain cryptic code. Since the code you write is generally abstracted several levels above the machine code it is eventually compiled into, you can safely use variable and function names that allow you to clearly name what you’re doing in a semi-self-documenting way.

For example, this clearly written code and the following cryptic code eventually compile to the same thing as far as the computer is concerned, so write with people and therefore clarity in mind – cleverness is generally not to be admired in code others may have to read or support.

function sayHello(name) {
  return `Hello ${name}!`;
}
console.log(sayHello("Game Dev"));

The code above and below produce the same result including the same after compile size so it’s best to choose clarity over cleverness.

function a(b) {
  return `Hello ${b}!`;
}
console.log(a("Game Dev"));

Indenting

JavaScript comments should be indented at the same level as the code immediately below them.

// function to greet user
function sayHello(name) {
  // salutation
  const returnPrefix = `Hello `;
  // end all greetings the same
  const returnSuffix = `!`;
  // create string to return
  const returnString = returnPrefix + name + returnSuffix;
  // return result to calling function
  return returnString;
}
/*
1. execute function
2. log result to console
*/
console.log(sayHello("Game Dev"));

Learning Resources

Continue your JavaScript learning with this free JavaScript 101 course for beginners, take your skills to the next level with this free Learning the JavaScript Language – COMPLETE COURSE or go all-in with this premium Phaser Mini-Degree. You might also consider trying JavaScript Tutorial Beginners by Dani Krossing or the JavaScript Tutorial For Beginners by The Net Ninja for even more JavaScript knowledge.

Happy Learning!!!

Conclusion

Through this JavaScript comment tutorial, we’ve learned a lot about how to use JS comments can help you develop your program. We first discussed the syntax of single-line ( //  ), multi-line ( /**/ ), and documentation-based comments ( /** */  ). We also explored how to effectively use comments for debugging, as well as the best practices and risks when using comments in general.

All this being said, remember coding comments are a great tool to use – whether it’s with JavaScript or some other programming language. Knowing how to use them properly can vastly enhance and smooth out the kinks in the development process, and just make your life that much easier. Even if it seems tedious to have to update comments, they can be worth it – especially if you can’t finish your programming in one sitting.

Best of luck on your journey to code JavaScript with confidence!!!

Did you come across any errors in this tutorial? Please let us know by completing this form and we’ll look into it!

FREE COURSES
Python Blog Image

FINAL DAYS: Unlock coding courses in Unity, Godot, Unreal, Python and more.