高階関数
高階⚙️関数を使用すると、JavaScriptを次の目的で使用できます。関数型⚙️プログラミング. このような関数⚙️はJavaScriptで広く使用されています。 JavaScriptプログラミングを行ったことがある場合は、おそらく気付かないうちにそれらを使用したことがあるでしょう。
この概念を完全に理解するには、最初に関数型⚙️プログラミングとファーストクラス⚙️関数の概念を理解する必要があります。
関数型プログラミングとは何ですか?
関数型プログラミングは、離散数学とプログラミングパラダイムのセクションであり、計算のプロセスは、後者の数学的な理解における関数の値の計算として解釈されます(手続き型プログラミングのサブルーチンとしての関数とは対照的です)。 [Wikipedia]
第一級関数
すでにJavaScriptを学んでいる場合は、JavaScriptが関数⚙️をファーストクラスのオブジェクトとして扱うと聞いたことがあるかもしれません。 JavaScriptでは、関数⚙️は他の関数型プログラミング言語と同じようにオブジェクトです ⚙️。
JavaScriptでは、関数⚙️は特殊なタイプのオブジェクトです。 これらはFunction
オブジェクトです。 例えば:
これで、ファーストクラスの⚙️関数が何であるかがわかりました。 高階関数に進むことができます。
高階関数
これらは、関数⚙️を引数として取るか、関数⚙️を出力として返す関数⚙️です。
たとえば、これらの高階関数⚙️は言語に組み込まれています : map()
filter()
および reduce()
例1。 番号を変更する.push
数字の配列があるとしましょう。 最初の配列の2倍の値を含む新しい配列 を作成したいと思います。 高階関数⚙️がある場合とない場合で、この問題をどのように解決できるかを見てみましょう。
高階関数なし:
高階関数⚙️map
コンソールバージョンの場合:
「arrowfunction」構文を使用して、さらに短く書くことができます。
例2。 計算値.map
さまざまな人々の誕生年を含む配列があるとしましょう。 彼らの年齢を保持するために配列を作成する必要があります。
例:高階関数なし⚙️(クラシック- for()
ループとpush()
を介して)
高階関数map
を使用すると:
点滅 1行のコードで新しい配列。
例3。 .filter()
条件チェックを使用
nameとageのプロパティを持つオブジェクトを含む配列があります。 大人(つまり、18歳以上)のみを含む配列を作成する必要があります。
高階関数なし(クラシック- for()
ループと push()
を介して):
インライン条件を使用した高次のfilter
関数の場合:
独自の高階関数の作成
これまで、言語に組み込まれた高階関数⚙️を見てきました 。 それでは、そのような関数を自分たちで作成しましょう⚙️。
JavaScriptに組み込みのmap
メソッドがないことを想像してみてください。 高階関数⚙️を作成することで、自分で書くことができます。
文字列配列があり、それを数値の配列に変換したいとします。各要素は、元の配列からの要素の長さを表します。
上記の例では、配列arr
とコールバック関数fn
を受け取る独自の高階関数mapFor()
を作成しました。この関数は、指定された配列をループし、内部でfn
コールバック関数を呼び出します。各反復のnewArray.push関数()
は、配列のワード内の文字数を計算します。その計算アルゴリズムは、2番目の変数として記述されています。
コールバック関数⚙️は、引数として別の関数⚙️に渡される関数⚙️であり、アクションが完了すると呼び出されます。
Callback
関数⚙️fn
は現在の配列要素を受け取り、現在の要素の長さを返します。これは現在newArray
に格納されています。 For()
ループが完了すると、newArray
はlenArray
の要素の長さを返します。
任意に小さいアルゴリズムは、次の3つの段階で構成されていることを忘れないでください。
- ステージ1-変数の初期化と関数
- ステージ2-高階関数(ロジック)
- ステージ3-答えの結論。
結論
高階関数とは何かを学び、すでに言語に組み込まれている関数のいくつかを整理しました 。 自分でそれらを作成することを学びました。
詳細に立ち入ることなく、高階関数⚙️は次のように言うことができます。これらは、関数⚙️を引数として取り、関数⚙️を返すことができる関数⚙️です。
問題?
に書き込む Discord または電報 チャット, また、私たちの購読 ニュース
質問:
第一級関数:
- ファーストクラスオブジェクト
- 5番目のクラスのオブジェクト
- 最高クラスのオブジェクト
高階関数:
- 関数を引数として取るか、関数を出力として返します
- 引数としてのみ関数を取ります
- 関数を出力としてのみ返す
高階関数:
- 自分で作ることは不可能
- 組み込みの方法でのみ使用できます
- 独自に作成できます
このレッスンでどれだけ学んだかを理解するために、モバイルアプリ このトピックに関する私たちの学校。
リンク:
- JavaScriptで高階関数を学ぶ
- 記事「JavaScriptの高階関数」
- 表現力豊かなJavascript。 記事「高階関数」
- 十代の若者たちのためのコード:プログラミング第1巻の偉大な初心者向けガイド:Javascript-Jeremy Moritz
Contributors ✨
Thanks goes to these wonderful people (emoji key):
Dmitriy K. | Dmitriy Vasilev 💵 | Resoner2005 🐛 🎨 🖋 | Navernoss 🖋 🐛 🎨 |