This site is mobile accessible. Press the "Tap Here" button to use a different font-size.
Smartphone icons created by Freepik - Flaticon
8.5 JS Style Guide
Always use the same coding conventions for all your JavaScript projects.
JavaScript Coding Conventions
- Coding conventions are style guidelines for programming. They typically cover:
- Naming and declaration rules for variables and functions.
- Rules for the use of white space, indentation, and comments.
- Programming practices and principles
- Coding conventions secure quality:
- Improves code readability
- Make code maintenance easier
- Coding conventions can be documented rules for teams to follow, or just be your individual coding practice.
- This page describes the general JavaScript code conventions used by W3Schools.
- You should also read the next chapter "Best Practices", and learn how to avoid coding pitfalls.
Variable Names
- At W3schools we use camelCase for identifier names (variables and functions).
- All names start with a letter.
- At the bottom of this page, you will find a wider discussion about naming rules.
Spaces Around Operators
Always put spaces around operators ( = + - * / ), and after commas:
Examples:
var x = y + z;
var values = ["Volvo", "Saab", "Fiat"];
Code Indentation
Always use 2 spaces for indentation of code blocks:
Functions:
function toCelsius(fahrenheit) {
return (5 / 9) * (fahrenheit - 32);
}
Do not use tabs (tabulators) for indentation. Different editors interpret tabs differently.
Statement Rules
- General rules for simple statements:
- Always end a simple statement with a semicolon.
var values = ["Volvo", "Saab", "Fiat"];
var person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
- General rules for complex (compound) statements:
- Put the opening bracket at the end of the first line.
- Use one space before the opening bracket.
- Put the closing bracket on a new line, without leading spaces.
- Do not end a complex statement with a semicolon.
Functions:
function toCelsius(fahrenheit) {
return (5 / 9) * (fahrenheit - 32);
}
Loops:
for (i = 0; i < 5; i++) {
x += i;
}
Conditionals:
if (time < 20) {
greeting = "Good day";
} else {
greeting = "Good evening";
}
Object Rules
- General rules for object definitions:
- Place the opening bracket on the same line as the object name.
- Use colon plus one space between each property and its value.
- Use quotes around string values, not around numeric values.
- Do not add a comma after the last property-value pair.
- Place the closing bracket on a new line, without leading spaces.
- Always end an object definition with a semicolon.
Example
var person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
Short objects can be written compressed, on one line, using spaces only between properties, like this:
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Line Length < 80
- For readability, avoid lines longer than 80 characters.
- If a JavaScript statement does not fit on one line, the best place to break it, is after an operator or a comma.
document.getElementById("demo").innerHTML =
"Hello Dolly.";
Naming Conventions
- Always use the same naming convention for all your code. For example:
- Variable and function names written as camelCase
- Global variables written in UPPERCASE (We don't, but it's quite common)
- Constants (like PI) written in UPPERCASE
- Should you use hyp-hens, camelCase, or under_scores in variable names?
- This is a question programmers often discuss. The answer depends on who you ask:
Hyphens in HTML and CSS:
- HTML5 attributes can start with data- (data-quantity, data-price).
- CSS uses hyphens in property-names (font-size).
Hyphens can be mistaken as subtraction attempts. Hyphens are not allowed in JavaScript names.
Underscores:
- Many programmers prefer to use underscores (date_of_birth), especially in SQL databases.
- Underscores are often used in PHP documentation.
PascalCase:
PascalCase is often preferred by C programmers.
camelCase:
- camelCase is used by JavaScript itself, by jQuery, and other JavaScript libraries.
- Do not start names with a $ sign. It will put you in conflict with many JavaScript library names.
Loading JavaScript in HTML
Use simple syntax for loading external scripts (the type attribute is not necessary):
<script src="myscript.js"></script>
Accessing HTML Elements
- A consequence of using "untidy" HTML styles, might result in JavaScript errors.
- These two JavaScript statements will produce different results:
var obj = getElementById("Demo")
var obj = getElementById("demo")
File Extensions
- HTML files should have a .html extension (.htm is allowed).
- CSS files should have a .css extension.
- JavaScript files should have a .js extension.
Use Lower Case File Names
- Most web servers (Apache, Unix) are case sensitive about file names:
- london.jpg cannot be accessed as London.jpg.
- Other web servers (Microsoft, IIS) are not case sensitive:
- london.jpg can be accessed as London.jpg or london.jpg.
- If you use a mix of upper and lower case, you have to be extremely consistent.
- If you move from a case insensitive, to a case sensitive server, even small errors can break your web site.
- To avoid these problems, always use lower case file names (if possible).
Performance
- Coding conventions are not used by computers. Most rules have little impact on the execution of programs.
- Indentation and extra spaces are not significant in small scripts.
- For code in development, readability should be preferred. Larger production scripts should be minified.
JavaScript icons used in the buttons provided by ICONS8.COM. Smartphone icons created by Freepik - Flaticon
Example files created in this module:
JS Classes
JS Class Methods part 1
JS Class Methods part 2
JS Modules
Create Object from JSON String
JS Debuggers The console.log() Method
JS Debuggers The debugger Keyword
JS Style Guide - Line Length
JS Literal Constructors
JS Variables
JS Variables - Automatic Type Conversions
JS Variables - NaN
JS Comparisons
JS Functions - Parameter Defaults
End Your Switches with Defaults
JS String Objects cannot be safely compared
JS Objects cannot be compared
JS Common JavaScript Mistakes
JS Breaking a JavaScript Statement part 1
JS Breaking a JavaScript Statement part 2
JS Breaking a JavaScript Statement part 3
JS Breaking a Return Statement part a
JS Breaking a Return Statement part b
JS Breaking a Return Statement part c
JS Breaking a Return Statement part d
JS Breaking a Return Statement part 3f
JS Accessing Arrays with Named Indexes part 1
JS Accessing Arrays with Named Indexes part 2
JS Objects - Undefined is Not Null
JS Performance - Reduce DOM Access