ホームページ > ウェブフロントエンド > jsチュートリアル > ブロック宣言を使用するときにアロー関数で明示的な戻り値が必要になるのはなぜですか?

ブロック宣言を使用するときにアロー関数で明示的な戻り値が必要になるのはなぜですか?

Linda Hamilton
リリース: 2024-12-18 09:54:18
オリジナル
309 人が閲覧しました

Why Do Arrow Functions Need Explicit Returns When Using Block Declarations?

ブロック宣言のないアロー関数が明示的に値を返さなければならない理由

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート