ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で高階関数をマスターする: 関数型プログラミングのロックを解除する

JavaScript で高階関数をマスターする: 関数型プログラミングのロックを解除する

Linda Hamilton
リリース: 2024-12-18 03:01:12
オリジナル
360 人が閲覧しました

Mastering Higher-Order Functions in JavaScript: Unlock Functional Programming

JavaScript の高階関数

JavaScript では、高階関数 は、引数として別の関数を取るか、結果として関数を返す関数です。これらの関数は関数型プログラミングの基礎であり、クリーンでモジュール化された再利用可能なコードを実現します。


1.高階関数とは?

高階関数は次のとおりです:

  • 他の関数をパラメータとして受け取る関数。
  • 別の関数を返す関数。

これにより、JavaScript は関数型プログラミング用の強力な言語になります。


2.高階関数の例

A.引数としての関数

関数を引数として渡すと、動作をカスタマイズできます。

例: forEach による配列の反復

const numbers = [1, 2, 3];

numbers.forEach(function(number) {
  console.log(number * 2);
});
// Output:
// 2
// 4
// 6
ログイン後にコピー
ログイン後にコピー

B.他の関数を返す関数

関数を返すことで、柔軟で再利用可能なコンポーネントを作成できます。

例: 関数ファクトリー

function createMultiplier(multiplier) {
  return function(number) {
    return number * multiplier;
  };
}

const double = createMultiplier(2);
console.log(double(5)); // Output: 10

const triple = createMultiplier(3);
console.log(triple(5)); // Output: 15
ログイン後にコピー
ログイン後にコピー

3. JavaScript の組み込み高階関数

JavaScript は、標準ライブラリで多くの高階関数を提供します。

A.地図

配列の各要素を変換します。

const numbers = [1, 2, 3];
const squared = numbers.map(function(number) {
  return number * number;
});
console.log(squared); // Output: [1, 4, 9]
ログイン後にコピー
ログイン後にコピー

B.フィルター

条件に基づいて要素をフィルタリングします。

const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter(function(number) {
  return number % 2 === 0;
});
console.log(evenNumbers); // Output: [2, 4]
ログイン後にコピー
ログイン後にコピー

C. を減らす

関数を適用して配列を単一の値に削減します。

const numbers = [1, 2, 3];

numbers.forEach(function(number) {
  console.log(number * 2);
});
// Output:
// 2
// 4
// 6
ログイン後にコピー
ログイン後にコピー

4.高階関数の利点

  1. 再利用性: 共通のパターンをカプセル化できます。
  2. モジュール性: 動作をロジックから分離します。
  3. 可読性: コードの繰り返しを減らします。
  4. 強力な抽象化: 複雑な操作を簡素化します。

5.カスタム高階関数

例: カスタムリピート関数

function createMultiplier(multiplier) {
  return function(number) {
    return number * multiplier;
  };
}

const double = createMultiplier(2);
console.log(double(5)); // Output: 10

const triple = createMultiplier(3);
console.log(triple(5)); // Output: 15
ログイン後にコピー
ログイン後にコピー

6.実用的な応用

  1. イベントハンドラー
const numbers = [1, 2, 3];
const squared = numbers.map(function(number) {
  return number * number;
});
console.log(squared); // Output: [1, 4, 9]
ログイン後にコピー
ログイン後にコピー
  1. API
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter(function(number) {
  return number % 2 === 0;
});
console.log(evenNumbers); // Output: [2, 4]
ログイン後にコピー
ログイン後にコピー
  1. 機能構成 小さな関数を組み合わせて複雑な動作を構築します。
const numbers = [1, 2, 3, 4];
const sum = numbers.reduce(function(accumulator, currentValue) {
  return accumulator + currentValue;
}, 0);
console.log(sum); // Output: 10
ログイン後にコピー

7.高階関数の課題

  • デバッグ: 匿名関数によりスタック トレースが読みにくくなります。
  • パフォーマンス: 過度に使用すると、パフォーマンスのボトルネックが発生する可能性があります。
  • 可読性: 複雑な構成は理解するのが難しい場合があります。

8.概要

  • 高階関数は関数を引数として受け取るか、関数を返します。
  • これらは関数型プログラミングの中心であり、モジュール式で再利用可能なソリューションを提供します。
  • map、filter、reduce などの JavaScript の組み込み高階関数により、一般的なタスクが簡素化されます。

高階関数をマスターすることは、効率的で表現力豊かな JavaScript コードを作成するための鍵です。

こんにちは、アバイ・シン・カタヤットです!
私はフロントエンドとバックエンドの両方のテクノロジーの専門知識を持つフルスタック開発者です。私はさまざまなプログラミング言語やフレームワークを使用して、効率的でスケーラブルでユーザーフレンドリーなアプリケーションを構築しています。
ビジネス用メールアドレス kaashshorts28@gmail.com までお気軽にご連絡ください。

以上がJavaScript で高階関数をマスターする: 関数型プログラミングのロックを解除するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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