ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の高階関数を理解する
JavaScript を学習している場合は、おそらく 高階関数 という用語に遭遇したことがあるでしょう。複雑そうに聞こえますが、それほど複雑ではありません。 JavaScript は関数型プログラミング言語として、関数ベースのプログラミングにおいて重要なこれらの関数の使用を可能にします。
関数プログラミング は、主要な構成要素としての関数の作成と使用を意味します。このアプローチでは、関数をパラメータとして他の関数に渡すことも、結果として返すこともできます。この考え方により、組織的かつ効率的なコード記述が可能になります。
JavaScript は関数を「第一級市民」として扱います。これは、関数がオブジェクトであることを意味します。つまり、変数に割り当てたり、パラメーターとして渡したり、数値や文字列などのさまざまなコンテキストで使用したりできる、特定の種類のオブジェクトです。
例:
function pozdrav() { console.log('Zdravo, svete!'); } pozdrav(); // Ispisuje 'Zdravo, svete!' // Dodavanje svojstva funkciji pozdrav.jezik = 'srpski'; console.log(pozdrav.jezik); // Ispisuje 'srpski'
JavaScript では、関数を変数に割り当てることができます:
const kvadrat = function(x) { return x * x; }; console.log(kvadrat(5)); // Ispisuje 25
ファーストクラス関数の主な機能の 1 つは、それらの関数を引数として他の関数に渡す機能です。
function formalniPozdrav() { console.log("Kako ste?"); } function neformalniPozdrav() { console.log("Šta ima?"); } function pozdravVrsta(vrsta, formalan, neformalan) { if (vrsta === 'formalan') { formalan(); } else if (vrsta === 'neformalan') { neformalan(); } } pozdravVrsta('neformalan', formalniPozdrav, neformalniPozdrav); // Ispisuje 'Šta ima?'
高次関数 は、他の関数を引数として受け取るか、結果として返す関数です。これにより、よりエレガントで簡潔なコード記述が可能になります。例には、map、filter、reduce.
メソッドが含まれます。map は、既存の配列の各要素に対して関数を呼び出して新しい配列を作成します。
マップメソッドがありません:
const arr1 = [10, 20, 30, 40, 50]; const arr2 = []; for (let i = 0; i < arr1.length; i++) { arr2.push(arr1[i] * 2); } console.log(arr2); // [20, 40, 60, 80, 100]
map メソッドを使用する:
const arr1 = [10, 20, 30. 40, 50]; const arr2 = arr1.map(item => item * 2); console.log(arr2); // [20, 40, 60, 8-, 100]
フィルターは、指定された条件を満たすすべての要素を含む新しい配列を作成します。
const osobe = [ { ime: 'Pera', godine: 13 }, { ime: 'Mika', godine: 18 }, { ime: 'Laza', godine: 64 }, { ime: 'Ana', godine: 10 }, ]; const punoletni = osobe.filter(osoba => osoba.godine >= 18); console.log(punoletni); // [ { ime: 'Mika', godine: 18 }, { ime: 'Laza', godine: 64 } ]
reduce は配列の各メンバーに対して関数を実行し、一意の値を返します。
reduce を使用した例:
const arr = [4, 6, 10, 5, 25]; const suma = arr.reduce((akumulator, vrednost) => akumulator + vrednost, 0); console.log(suma); // 50
JavaScript に組み込みのマップ メソッドがなかったらと想像してみてください。自分で作成することもできます:
function mapiraj(arr, fn) { const noviNiz = []; for (let i = 0; i < arr.length; i++) { noviNiz.push(fn(arr[i])); } return noviNiz; } const duzine = mapiraj(['JavaScript', 'Python'], item => item.length); console.log(duzine); // [10, 6]
高階関数により、JavaScript のコードの柔軟性と簡素化が可能になります。これらの機能を使用すると、コードがより簡潔で、整理され、保守しやすくなります。
以上がJavaScript の高階関数を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。