ホームページ >ウェブフロントエンド >jsチュートリアル >一部の JavaScript のアロー関数が「未定義」を返すのはなぜですか?

一部の JavaScript のアロー関数が「未定義」を返すのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-20 08:36:10354ブラウズ

Why Do Some JavaScript Arrow Functions Return `undefined`?

アロー関数と明示的な Return ステートメント

JavaScript では、アロー関数は関数を定義するための簡潔な構文を提供します。ただし、一般的な落とし穴は、ブロック本体を利用するアロー関数を呼び出すときに未定義の値が発生することです。

次のアロー関数を考えてみましょう:

const f = arg => { arg.toUpperCase(); };

この関数は論理的に見えますが、次の場合に unknown を返します。と呼ばれた。その理由を理解するには、アロー関数のセマンティクスを調べる必要があります。

アロー関数でブロック本体 (中括弧付き) を使用する場合、暗黙的な戻り動作は簡潔な本体 (中括弧なし) とは異なります。ブロック本体バージョンでは、関数によって返される値は return キーワードを使用して明示的に指定する必要があります。

const f = arg => { return arg.toUpperCase(); };

この明示的な return ステートメントを使用すると、関数は期待値「TESTING」を正しく返します。

あるいは、簡潔な本文構文を使用して同じ結果を暗黙的に達成することもできます。

const f = arg => arg.toUpperCase();

Inこの場合、本体の最後の式 arg.toUpperCase() は、アロー関数によって自動的に返されます。

したがって、ブロック本体でアロー関数を呼び出すときに未定義の値を避けるために、常に戻り値を明示的に指定してください。 return キーワードを使用するか、簡潔な本文構文を使用します。

以上が一部の JavaScript のアロー関数が「未定義」を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。