mirror of
https://github.com/airbnb/javascript.git
synced 2026-01-14 08:38:08 -05:00
Merge pull request #472 from tomekwi/implicit-return-#438
Implicit return + single expression
This commit is contained in:
52
README.md
52
README.md
@@ -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)**
|
||||
|
||||
Reference in New Issue
Block a user