diff --git a/es5/README.md b/es5/README.md
index bcbe6489..02ecc75e 100644
--- a/es5/README.md
+++ b/es5/README.md
@@ -135,7 +135,7 @@
var items = [];
```
- - If you don't know array length use Array#push.
+ - Use Array#push instead of direct assignment to add items to an array.
```javascript
var someStack = [];
@@ -250,6 +250,7 @@
items = [];
for (i = 0; i < length; i++) {
+ // use direct assignment in this case because we're micro-optimizing.
items[i] = '
' + messages[i].message + '';
}
@@ -301,7 +302,7 @@
}
```
- - Never name a parameter `arguments`, this will take precedence over the `arguments` object that is given to every function scope.
+ - Never name a parameter `arguments`. This will take precedence over the `arguments` object that is given to every function scope.
```javascript
// bad
@@ -447,7 +448,7 @@
return name;
}
- // bad
+ // bad - unnessary function call
function() {
var name = getName();
@@ -455,16 +456,21 @@
return false;
}
+ this.setFirstName(name);
+
return true;
}
// good
function() {
+ var name;
+
if (!arguments.length) {
return false;
}
- var name = getName();
+ name = getName();
+ this.setFirstName(name);
return true;
}
@@ -475,7 +481,7 @@
## Hoisting
- - Variable declarations get hoisted to the top of their scope, their assignment does not.
+ - Variable declarations get hoisted to the top of their scope, but their assignment does not.
```javascript
// we know this wouldn't work (assuming there
@@ -665,7 +671,7 @@
## Comments
- - Use `/** ... */` for multiline comments. Include a description, specify types and values for all parameters and return values.
+ - Use `/** ... */` for multi-line comments. Include a description, specify types and values for all parameters and return values.
```javascript
// bad
@@ -803,6 +809,30 @@
});
```
+ - Place 1 space before the opening parenthesis in control statements (`if`, `while` etc.). Place no space before the argument list in function calls and declarations.
+
+ ```javascript
+ // bad
+ if(isJedi) {
+ fight ();
+ }
+
+ // good
+ if (isJedi) {
+ fight();
+ }
+
+ // bad
+ function fight () {
+ console.log ('Swooosh!');
+ }
+
+ // good
+ function fight() {
+ console.log('Swooosh!');
+ }
+ ```
+
- Set off operators with spaces.
```javascript
@@ -846,7 +876,7 @@
// bad
$('#items').
- find('selected').
+ find('.selected').
highlight().
end().
find('.open').
@@ -861,8 +891,8 @@
.updateCount();
// bad
- var leds = stage.selectAll('.led').data(data).enter().append('svg:svg').class('led', true)
- .attr('width', (radius + margin) * 2).append('svg:g')
+ var leds = stage.selectAll('.led').data(data).enter().append('svg:svg').classed('led', true)
+ .attr('width', (radius + margin) * 2).append('svg:g')
.attr('transform', 'translate(' + (radius + margin) + ',' + (radius + margin) + ')')
.call(tron.led);
@@ -870,8 +900,8 @@
var leds = stage.selectAll('.led')
.data(data)
.enter().append('svg:svg')
- .class('led', true)
- .attr('width', (radius + margin) * 2)
+ .classed('led', true)
+ .attr('width', (radius + margin) * 2)
.append('svg:g')
.attr('transform', 'translate(' + (radius + margin) + ',' + (radius + margin) + ')')
.call(tron.led);
@@ -1118,17 +1148,12 @@
// bad
var OBJEcttsssss = {};
var this_is_my_object = {};
+ var o = {};
function c() {}
- var u = new user({
- name: 'Bob Parr'
- });
// good
var thisIsMyObject = {};
function thisIsMyFunction() {}
- var user = new User({
- name: 'Bob Parr'
- });
```
- Use PascalCase when naming constructors or classes.
@@ -1607,6 +1632,7 @@
This is a list of organizations that are using this style guide. Send us a pull request or open an issue and we'll add you to the list.
- **Aan Zee**: [AanZee/javascript](https://github.com/AanZee/javascript)
+ - **Adult Swim**: [adult-swim/javascript](https://github.com/adult-swim/javascript)
- **Airbnb**: [airbnb/javascript](https://github.com/airbnb/javascript)
- **American Insitutes for Research**: [AIRAST/javascript](https://github.com/AIRAST/javascript)
- **Apartmint**: [apartmint/javascript](https://github.com/apartmint/javascript)
@@ -1616,6 +1642,7 @@
- **Digitpaint** [digitpaint/javascript](https://github.com/digitpaint/javascript)
- **Evernote**: [evernote/javascript-style-guide](https://github.com/evernote/javascript-style-guide)
- **ExactTarget**: [ExactTarget/javascript](https://github.com/ExactTarget/javascript)
+ - **Flexberry**: [Flexberry/javascript-style-guide](https://github.com/Flexberry/javascript-style-guide)
- **Gawker Media**: [gawkermedia/javascript](https://github.com/gawkermedia/javascript)
- **GeneralElectric**: [GeneralElectric/javascript](https://github.com/GeneralElectric/javascript)
- **GoodData**: [gooddata/gdc-js-style](https://github.com/gooddata/gdc-js-style)
@@ -1624,6 +1651,7 @@
- **InfoJobs**: [InfoJobs/JavaScript-Style-Guide](https://github.com/InfoJobs/JavaScript-Style-Guide)
- **Intent Media**: [intentmedia/javascript](https://github.com/intentmedia/javascript)
- **Jam3**: [Jam3/Javascript-Code-Conventions](https://github.com/Jam3/Javascript-Code-Conventions)
+ - **JSSolutions**: [JSSolutions/javascript](https://github.com/JSSolutions/javascript)
- **Kinetica Solutions**: [kinetica/javascript](https://github.com/kinetica/javascript)
- **Mighty Spring**: [mightyspring/javascript](https://github.com/mightyspring/javascript)
- **MinnPost**: [MinnPost/javascript](https://github.com/MinnPost/javascript)
@@ -1656,18 +1684,20 @@
This style guide is also available in other languages:
- -  **German**: [timofurrer/javascript-style-guide](https://github.com/timofurrer/javascript-style-guide)
- -  **Japanese**: [mitsuruog/javacript-style-guide](https://github.com/mitsuruog/javacript-style-guide)
-  **Brazilian Portuguese**: [armoucar/javascript-style-guide](https://github.com/armoucar/javascript-style-guide)
- -  **Chinese(Traditional)**: [jigsawye/javascript](https://github.com/jigsawye/javascript)
- -  **Chinese(Simplified)**: [adamlu/javascript-style-guide](https://github.com/adamlu/javascript-style-guide)
- -  **Spanish**: [paolocarrasco/javascript-style-guide](https://github.com/paolocarrasco/javascript-style-guide)
- -  **Korean**: [tipjs/javascript-style-guide](https://github.com/tipjs/javascript-style-guide)
- -  **French**: [nmussy/javascript-style-guide](https://github.com/nmussy/javascript-style-guide)
- -  **Russian**: [uprock/javascript](https://github.com/uprock/javascript)
-  **Bulgarian**: [borislavvv/javascript](https://github.com/borislavvv/javascript)
-  **Catalan**: [fpmweb/javascript-style-guide](https://github.com/fpmweb/javascript-style-guide)
+ -  **Chinese(Traditional)**: [jigsawye/javascript](https://github.com/jigsawye/javascript)
+ -  **Chinese(Simplified)**: [adamlu/javascript-style-guide](https://github.com/adamlu/javascript-style-guide)
+ -  **French**: [nmussy/javascript-style-guide](https://github.com/nmussy/javascript-style-guide)
+ -  **German**: [timofurrer/javascript-style-guide](https://github.com/timofurrer/javascript-style-guide)
+ -  **Italian**: [sinkswim/javascript-style-guide](https://github.com/sinkswim/javascript-style-guide)
+ -  **Japanese**: [mitsuruog/javacript-style-guide](https://github.com/mitsuruog/javacript-style-guide)
+ -  **Korean**: [tipjs/javascript-style-guide](https://github.com/tipjs/javascript-style-guide)
-  **Polish**: [mjurczyk/javascript](https://github.com/mjurczyk/javascript)
+ -  **Russian**: [uprock/javascript](https://github.com/uprock/javascript)
+ -  **Spanish**: [paolocarrasco/javascript-style-guide](https://github.com/paolocarrasco/javascript-style-guide)
+ -  **Thai**: [lvarayut/javascript-style-guide](https://github.com/lvarayut/javascript-style-guide)
## The JavaScript Style Guide Guide