ブロック宣言のないアロー関数が明示的に値を返さなければならない理由
ES6 で導入されたアロー関数は、JavaScript 関数の構文を簡素化します。ただし、値を返す場合、通常の関数とは異なる動作をする可能性があります。
ブロック宣言 (中かっこで囲まれた) を含む次のアロー関数を考えてみましょう。
const f = arg => { arg.toUpperCase(); };
この関数の呼び出し値を返さないため、未定義がコンソールに出力されます:
console.log(f("testing")); // undefined
通常の関数とは異なり、アロー関数はブロック宣言を使用すると、ブロック式の結果が暗黙的に返されません。代わりに、戻り値を指定するには明示的な return ステートメントが必要です。したがって、アロー関数は次のように記述する必要があります:
const f = arg => { return arg.toUpperCase(); }; // Explicit 'return' statement
または、アロー関数を (ブロック中括弧なしで) 簡潔に宣言することもできます。この場合、矢印に続く式の結果が暗黙的に返されます:
const f = arg => arg.toUpperCase();
例:
const f1 = arg => { return arg.toUpperCase(); }; // With explicit 'return' console.log(f1("testing")); const f2 = arg => arg.toUpperCase(); // Concise arrow function console.log(f2("testing"));
f1 と f2 はどちらも大文字の文字列「TESTING」を返します。ブロック宣言がある場合とない場合のアロー関数の違いを理解することで、アロー関数が期待した値を返すようになります。
以上がブロック宣言を使用するときにアロー関数で明示的な戻り値が必要になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。