Implicit return + single expression
This commit is contained in:
Harrison Shoff
2015-08-13 09:44:17 -07:00

View File

@@ -593,16 +593,18 @@
```javascript
// bad
[1, 2, 3].map(function (x) {
return x * x;
const y = x + 1;
return x * y;
});
// good
[1, 2, 3].map((x) => {
return x * x;
const y = x + 1;
return x * y;
});
```
- [8.2](#8.2) <a name='8.2'></a> If the function body fits on one line and there is only a single argument, feel free to omit the braces and parentheses, and use the implicit return. Otherwise, add the parentheses, braces, and use a `return` statement.
- [8.2](#8.2) <a name='8.2'></a> If the function body consists of a single expression, feel free to omit the braces and use the implicit return. Otherwise use a `return` statement.
> Why? Syntactic sugar. It reads well when multiple functions are chained together.
@@ -610,12 +612,50 @@
```javascript
// good
[1, 2, 3].map(number => `A string containing the ${number}.`);
// bad
[1, 2, 3].map(number => {
const nextNumber = number + 1;
`A string containing the ${nextNumber}.`;
});
// good
[1, 2, 3].map(number => {
const nextNumber = number + 1;
return `A string containing the ${nextNumber}.`;
});
```
- [8.3](#8.3) <a name='8.3'></a> In case the expression spans over multiple lines, wrap it in parentheses for better readability.
> Why? It shows clearly where the function starts and ends.
```js
// bad
[1, 2, 3].map(number => 'As time went by, the string containing the ' +
`${number} became much longer. So we needed to break it over multiple ` +
'lines.'
);
// good
[1, 2, 3].map(number => (
`As time went by, the string containing the ${number} became much ` +
'longer. So we needed to break it over multiple lines.'
));
```
- [8.4](#8.4) <a name='8.4'></a> If your function only takes a single argument, feel free to omit the parentheses.
> Why? Less visual clutter.
```js
// good
[1, 2, 3].map(x => x * x);
// good
[1, 2, 3].reduce((total, n) => {
return total + n;
}, 0);
[1, 2, 3].reduce((y, x) => x + y);
```
**[⬆ back to top](#table-of-contents)**