ホームページ >ウェブフロントエンド >jsチュートリアル >Javascript Essentials : 高階関数、カリー化、および部分適用

Javascript Essentials : 高階関数、カリー化、および部分適用

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-03 11:49:29796ブラウズ

Javascript Essentials : Higher-Order Functions, Currying, and Partial Application

JavaScript Essentials 101: 高階関数、カリー化、および部分適用

導入

JavaScript Essentials 101 へようこそ。このシリーズは、すべての開発者が知っておくべき JavaScript の核となる基礎を明らかにするために作成されました。私たちは流行の機能ではなく、基本的な概念、つまり最初から JavaScript の一部であり、クリーンで効果的なコードを書くために不可欠な技術と構造に焦点を当てています。これらの概念は高度に聞こえても、問題解決能力を高め、面接のパフォーマンスを向上させ、コードのメンテナンスを簡素化するツールである JavaScript のコア DNA の一部であると考えてください。

なぜこれが重要なのか

高階関数カリー化、または部分アプリケーションについて聞いたことがないかもしれませんが、これらはより効率的で再利用可能なものを可能にする重要な概念です、およびスケーラブルなコード。データ変換を扱う場合でも、関数呼び出しの最適化を行う場合でも、複雑なロジックを処理する場合でも、これらのツールは JavaScript の機能面を理解するための鍵となります。

これらのテクニックがどれほど実用的で強力であるかを示す例を挙げて、これらのテクニックを詳しく見ていきましょう。


高次関数

高階関数は、引数として別の関数を取る、または結果として関数を返すのいずれかである関数です。これらは関数型プログラミング手法を可能にし、データ操作をよりクリーンかつ直感的にするため、JavaScript に不可欠です。

: 簡潔な構文で配列を変換する、map、filter、reduce の 3 つの高階関数を見てみましょう:

const numbers = [1, 2, 3, 4, 5];

// Using map to double each number
const doubled = numbers.map(num => num * 2);
console.log(doubled); // [2, 4, 6, 8, 10]

// Using filter to get even numbers
const evens = numbers.filter(num => num % 2 === 0);
console.log(evens); // [2, 4]

// Using reduce to sum up all numbers
const sum = numbers.reduce((acc, num) => acc + num, 0);
console.log(sum); // 15

カリー化

Currying は、複数の引数を持つ関数を、それぞれが 1 つの引数を取る一連の関数に変換します。 複雑な操作を管理可能な部分に分割し、関数をより再利用しやすくするのに強力です。

: これはカリー化された加算関数です:

const add = a => b => a + b;
const addFive = add(5);

console.log(addFive(3)); // 8
console.log(addFive(10)); // 15

カリー化では、add から再利用可能な addFive 関数を作成します。このモジュール式アプローチにより、特定の計算が必要なコード内のどこでも addFive を使用できます。

部分適用

部分適用はカリー化に似ていますが、関数の引数の一部を事前に入力しながら、残りを動的に保つことができます。これは、固定パラメーターを使用した反復的なタスクにとって大きな変革となる可能性があります。

: さまざまな価格に 20% の税率を適用してみましょう:

const numbers = [1, 2, 3, 4, 5];

// Using map to double each number
const doubled = numbers.map(num => num * 2);
console.log(doubled); // [2, 4, 6, 8, 10]

// Using filter to get even numbers
const evens = numbers.filter(num => num % 2 === 0);
console.log(evens); // [2, 4]

// Using reduce to sum up all numbers
const sum = numbers.reduce((acc, num) => acc + num, 0);
console.log(sum); // 15

ここで、applyVAT を使用すると、コードを合理化して読みやすく保ちながら、固定税率で価格を迅速に計算できます。


結論

これらの「高度な」関数は馴染みがないように思えるかもしれませんが、JavaScript の機能を習得するには不可欠なツールです。高階関数、カリー化、部分的な適用を理解することで、テストと保守が容易な、よりクリーンで効率的なコードを作成できるようになります。次の章では、これらの概念に基づいて構築を続け、JavaScript の可能性を徐々に解き放っていきます。努力を続けてください。開発者としてのスキルと自信を高める基礎に投資していることになります。

以上がJavascript Essentials : 高階関数、カリー化、および部分適用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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