アロー関数の戻り値を理解する: 明示的対暗黙的のジレンマ
ES6 で導入されたアロー関数は、その利点で人気を集めています。簡潔な構文と柔軟性。ただし、戻り値を処理するときに、初心者プログラマを悩ませる一般的な落とし穴が発生します。
次のアロー関数を考えてみましょう:
const f = arg => { arg.toUpperCase(); };
この関数を呼び出すと、予期せず未定義が返されます。なぜこのようなことが起こっているのでしょうか?
簡潔なアロー関数の暗黙的なリターン
アロー関数には、中括弧のない簡潔な形式と、波括弧を使用したより冗長な形式の 2 つの異なる構文バリアントがあります。中括弧。簡潔な形式では本体式の結果が暗黙的に返されるため、明示的な return ステートメントは必要ありません。したがって、 arg => のようなアロー関数は、 arg.toUpperCase();
中括弧で囲まれたアロー関数の明示的な戻り値
一方、中括弧で囲まれたアロー関数は、従来の関数本体を使用します。このシナリオでは、暗黙的なリターンはありません。このようなアロー関数から値を取得するには、明示的な return ステートメントを使用する必要があります。前の例を変更すると、
const f = arg => { return arg.toUpperCase(); };
これで、関数は大文字の引数を正しく返すようになります。あるいは、中括弧を省略して、より簡潔な形式を使用することもできます。
const f = arg => arg.toUpperCase();
この場合、アロー関数は、大文字で始まる引数である式の結果を暗黙的に返します。
アロー関数の暗黙的な戻り値と明示的な戻り値の違いを理解することで、戻り値を扱うときに発生する落とし穴を回避できます。
以上が一部のアロー関数は「unknown」を返し、他のアロー関数は返さないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。