File tree Expand file tree Collapse file tree
files/ja/web/javascript/reference/functions/arrow_functions Expand file tree Collapse file tree Original file line number Diff line number Diff line change 22title : アロー関数式
33slug : Web/JavaScript/Reference/Functions/Arrow_functions
44l10n :
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 } ` を使ってオブジェクトリテラルを返そうとしても、期待通りに動作しないことに注意しましょう。
You can’t perform that action at this time.
0 commit comments