Skip to content

Commit c4355c0

Browse files
committed
2026/02/21 時点の英語版に基づき更新
1 parent d359f93 commit c4355c0

1 file changed

Lines changed: 15 additions & 8 deletions

File tree

  • files/ja/web/javascript/reference/functions/arrow_functions

files/ja/web/javascript/reference/functions/arrow_functions/index.md

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: アロー関数式
33
slug: Web/JavaScript/Reference/Functions/Arrow_functions
44
l10n:
5-
sourceCommit: fad67be4431d8e6c2a89ac880735233aa76c41d4
5+
sourceCommit: 50fc90b65f77385a8420729039e2a56bca64c3fe
66
---
77

88
**アロー関数式**は、従来の[関数式](/ja/docs/Web/JavaScript/Reference/Operators/function)の簡潔な代替構文ですが、意味的な違いや意図的な使用上の制限もあります。
@@ -112,7 +112,7 @@ const b = 2;
112112
() => a + b + 100;
113113
```
114114

115-
中括弧を省略できるのは、関数が直接式を返す場合だけです。本体に文がある場合は中括弧が必要となり、 `return` キーワードも必要となります。アロー関数はいつ何を返すかを推測することはできません。
115+
中括弧を省略できるのは、関数が直接式を返す場合だけです。本体に文がある場合は中括弧が必要となります。この場合、返値を明示的に `return` キーワードで指定する必要があります。アロー関数はいつ何を返すかを推測することはできません。
116116

117117
```js
118118
// 従来の関数
@@ -144,16 +144,23 @@ const bob2 = (a) => a + 100;
144144

145145
アロー関数は、式本体 (expression body) か、もしくはより一般的なブロック本体 (block body) のどちらかを使用することができます。
146146

147-
式本体においては、単一の式しか記述できないので、その式が暗黙的に return される値となります。しかし、ブロック本体においては、明示的に `return` 文を使用する必要があります。
147+
式本体においては、単一の式しか記述できないので、その式が暗黙的に返値になります。 ブロック本体は従来の関数本体と同様であり、返値は `return` キーワードを用いて明示的に指定しなければなりません。アロー関数は値を返さなければならないわけではありません。ブロック本体の実行が `return` 文に遭遇することなく到達した場合、その関数は他の関数と同様に `undefined` を返します。 return される値となります。しかし、ブロック本体においては、明示的に `return` 文を使用する必要があります。
148148

149149
```js
150-
const func = (x) => x * x;
151-
// 式本体の場合、暗黙の "return" があります
150+
// 式本体
151+
const add = (a, b) => a + b; // 暗黙に a + b を返す
152152

153-
const func2 = (x, y) => {
154-
return x + y;
153+
// ブロック本体
154+
const add2 = (a, b) => {
155+
console.log(a, b);
156+
return a + b; // 明示的に値を返す必要がある
157+
};
158+
159+
// 返値なし
160+
const add3 = (b) => {
161+
a += b;
162+
// return 文がないので、undefined を返す
155163
};
156-
// ブロック本体では、明示的な "return" が必要です
157164
```
158165

159166
式本体 `(params) => { object: literal }` を使ってオブジェクトリテラルを返そうとしても、期待通りに動作しないことに注意しましょう。

0 commit comments

Comments
 (0)