freeCodeCamp/guide/english/meta/free-code-camp-javascript-s.../index.md

116 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Free Code Camp JavaScript Style Guide
---
<small>or How Cool People Write JavaScript.</small>
## Indent
Always Use Two Spaces
No hard tabs, ever. No really, just don't do it.
## Curly Braces
Always use curly braces when using the keywords `if/else/else if`. This prevents a lot of ambiguity and will prevent syntax errors in some edge cases.
Bad:
if (foo) bar();
Good:
if (foo) { bar(); }
## Curly Braces Everywhere!
Space After `function` Keyword, Except in Anonymous Functions
Good:
function foo() {
}
var foo = function() {
// ...
};
Bad:
function foo ()
{
// ...
}
var foo = function () {
// ...
};
## Comments
* no inline comments
* single space after `//`
* Do not use multiline comment `/* */`, we are reserving these for use with jsDocs.
## Keywords
* space immediately after if, else, while, etc
* opening curly brace should always be on the same line.
Good:
if (true) {
// do the thing
}
Bad:
if(true)
{
// do the thing
}
## Else
Avoid else and "end early". In JavaScript there is often a lot of indenting (usually when dealing with async code and named "callback hell"). Anything you can do reduce the number of indents should be done. One thing is to <a href='http://blog.timoxley.com/post/47041269194/avoid-else-return-early' target='_blank' rel='nofollow'>avoid the else</a> keyword.
This also has the side effect of making code cleaner and easier to read.
Bad:
someAsynFunc(function(err, data) {
if (err) {
callback(err);
} else {
// do stuff with data
}
});
Good:
someAsynFunc(function(err, data) {
if (err) {
return callback(err);
}
// do stuff with data
// saves one indent
});
## Long Strings
Long multiline strings should be in one of two forms:
var longString =
long strings should +
be in this form, with the +
operator ending the line;
var foo = 'bar';
var longString = [
'long strings with variables such as ',
foo,
'should ',
'be in this form, an array of strings ',
'that are joined with the join array instance method',
].join('');
...more to come