-
Learning by doing
-
Trainers with practical experience
-
Classroom training
-
Detailed course material
-
Clear content description
-
Tailormade content possible
-
Training that proceeds
-
Small groups
https://www.spiraltrain.nl/javascript-programmeren/
https://www.spiraltrain.nl/advanced-javascript-programmeren/
https://www.spiraltrain.nl/jquery/
https://www.spiraltrain.nl/angularjs-programmeren/
In languages whose syntax is derived from C (e.g.: C ← C++ ← Java ← JavaScript), two brace styles are most common: Allman style and 1TBS.
Allman style
If a statement [1] contains a block, that block is considered as somewhat separate from the header of the statement: its opening brace is in a line of its own, at the same indentation level as the head. For example:
function foo(x, y, z)
{
if (x)
{
a();
} else {
b();
c();
}
}
1TBS (One True Brace Style)
Here, a block is more closely associated with the header of its statement, it starts after it, in the same line. For example:
function foo(x, y, z) {
if (x) {
a();
} else {
b();
c();
}
}
1TBS is a variant of the (older) K&R (Kernighan and Ritchie) style. In K&R style, functions are written in Allman style and braces are omitted where they are not necessary, e.g. around single-statement then-cases.
function foo(x, y, z)
{
if (x)
a();
else {
b();
c();
}
}
JavaScript
The de-facto standard in the JavaScript world is 1TBS, most style guides recommend it. One reason goes beyond taste and fitting in: If you return an object literal, you can’t put the opening brace in a separate line. An object literal is not a code block, but things look more consistent and you are less likely to make mistakes if both are formatted the same way. For example:
return {
name: ‘Jane’
};
If you formatted that in Allman style, you’d have:
// Don’t do this
return
{
name: ‘Jane’
};
However, JavaScript’s automatic semicolon insertion [2] adds a semicolon after return, if it is followed by a newline. The above code is thus equivalent to
return;
{
name: ‘Jane’
};
That’s an empty return statement, followed by a code block (not by an object literal!) whose insides consist of the label name and the expression statement [1] ‘Jane’. At the end, there is the empty statement, a semicolon (;) on its own.
The return statement is one of the few cases where newline is significant in JavaScript: it works as a terminator for statements. In the future, newlines might become more significant in JavaScript [3].
My preferences
My personal style is:
Obviously, whenever I contribute to an existing project, I stick to the coding style of that project.