[JS/Node]高次関数
14087 ワード
高次関数
パラメータ(パラメータ)として関数を受信し、関数として返される関数.
Achievement Goals
一級オブジェクト(first-class citizer)の3つの特徴を説明できます.高次関数(higher-orderfunction)について説明できます.JavaScriptで高次関数を記述できます.Advanced Challenges
考慮すべきテーマを学習し,TILを記述することができる.一級オブジェクト
JavaScriptで特別扱いされる対象
最も代表的な1級オブジェクトの1つは関数です.
n.関数
(javascriptが現れる時間を考慮して)javascriptでは、関数の特殊な処理は以下の通りです.変数に割り当てることができます. の他の関数のパラメータ(パラメータ)に渡すことができます. は、他の関数の結果として返すことができる. 関数を変数に割り当てることができます.
関数は、配列内の要素またはオブジェクトの属性値として保存できます.
これは、データを処理するように関数(string、number、boolean、array、object)を処理できることを意味します.
変数に関数を割り当てる場合:
関数式(function expression)は
関数宣言式のシースに依存しすぎると、コードのメンテナンスが容易ではありません.
コードのレビューやデバッグを行うと、コードが上下に逆転する場合があります.
関数は任意の場所で宣言できますが、関数の実行場所も重要ではありません.
逆に,関数式の結果は関数の割り当てと実行位置に依存するため,コードの位置をある程度予測できる.
シースを除いて、関数宣言式と関数式には大きな違いはありません.
しかし、関数式では、関数が変数に格納できることをより明確に説明しています.
関数は、変数に格納されたデータをパラメータとして受信したり、戻り値として使用したりすることができます.
関数は変数にも格納できるので、パラメータとして関数を受信したり、戻り値として使用したりすることができます.
高次関数
関数は、パラメータ
コールバック関数
別の関数
ライブラリ関数
パラメータとして関数を受信
高次関数パラメータとして別の関数を受信します.
Achievement Goals
アレイに高次関数filterが内蔵されていることは理解できます.filterの理解に基づいて,残りの高次関数を自分で学習することができる.
forEach, find, filter, map, reduce, sort, some, every 抽象について説明できます.抽象的な観点から,高次関数が持つ利点を説明できる.高次関数を使用してプログラムを記述できます.1. map
定義#テイギ#
すべての要素が同じ動作を持つ値を返すすべての方法
コールバック関数
行動は私自身で作成し、
immutable
既存のシナリオを変更しない
リファレンスコード
定義#テイギ#
1つの方法では、すべての要素で私が望んでいる値だけをフィルタして返します.
コールバック関数
行動は私自身で作成し、
immutable
既存のシナリオを変更しない
リファレンスコード
定義#テイギ#
配列を値にする方法
プロセス
アレイ内の各要素
特定の方法(関数)による
あなたが望む形で
凝縮する.(reduction)
初期値が指定されていません.
初期値は
次の要素から
「累積値」および「現在値」は、弊社の希望に応じて累積値に格納されます.
このプロシージャを配列の最後のインデックス要素に繰り返します.
返却する
最後の
リファレンスコード
JavaScript配列法における高次関数(js array method)の学習
ただし、filterメソッドのコールバック関数を使用して、Deep equalityで条件を明確に説明することをお勧めします.
したがって、コールバック関数は、内部条件に基づいて「真」(true)または「偽」(false)を返すことを推奨します.
抽象化
抽象化
いくつかの複雑なものをコアのみを抽出する状態に圧縮します.
(生産性向上)
値レベル抽象
値の受信と処理のみのレベル
関数===値を受信し、値==を返す複雑な論理が隠されています==
値レベルで抽象化
事故レベル抽象**
思考の抽象化:伝達関数(思考の束縛)の処理レベル
パラメータ(パラメータ)として関数を受信し、関数として返される関数.
Achievement Goals
一級オブジェクト(first-class citizer)の3つの特徴を説明できます.高次関数(higher-orderfunction)について説明できます.JavaScriptで高次関数を記述できます.Advanced Challenges
考慮すべきテーマを学習し,TILを記述することができる.一級オブジェクト
JavaScriptで特別扱いされる対象
最も代表的な1級オブジェクトの1つは関数です.
n.関数
(javascriptが現れる時間を考慮して)javascriptでは、関数の特殊な処理は以下の通りです.
関数は、配列内の要素またはオブジェクトの属性値として保存できます.
これは、データを処理するように関数(string、number、boolean、array、object)を処理できることを意味します.
変数に関数を割り当てる場合:
/*
* 아래는 변수 square에 함수를 할당하는 함수 표현식입니다.
* 자바스크립트에서 함수는 일급 객체이기 때문에 변수에 저장할 수 있습니다.
*
* 함수 표현식은 할당 전에 사용할 수 없습니다.
* square(7); // --> ReferenceError: Can't find variable: square
*/
const square = function (num) {
return num * num;
};
// square에는 함수가 저장되어 있으므로 (일급 객체), 함수 호출 연산자 '()'를 사용할 수 있습니다.
output = square(7);
console.log(output); // --> 49
함수 표현식
は、変数に割り当てられた後に使用することができる.関数式(function expression)は
호이스팅(Hoisting)
には適用されません.関数宣言式のシースに依存しすぎると、コードのメンテナンスが容易ではありません.
コードのレビューやデバッグを行うと、コードが上下に逆転する場合があります.
関数は任意の場所で宣言できますが、関数の実行場所も重要ではありません.
逆に,関数式の結果は関数の割り当てと実行位置に依存するため,コードの位置をある程度予測できる.
シースを除いて、関数宣言式と関数式には大きな違いはありません.
しかし、関数式では、関数が変数に格納できることをより明確に説明しています.
関数は、変数に格納されたデータをパラメータとして受信したり、戻り値として使用したりすることができます.
関数は変数にも格納できるので、パラメータとして関数を受信したり、戻り値として使用したりすることができます.
高次関数
関数は、パラメータ
argument
として受信してもよいし、関数として返された関数であってもよい.コールバック関数
別の関数
caller
に渡されるパラメータargument
の関数ライブラリ関数
パラメータとして関数を受信
高次関数パラメータとして別の関数を受信します.
function triple(num) {
return num * 3;
}
function tripleNum(func, num) { // tripleNum: 다른 함수(func)를 인자로 받는 고차함수
return func(num); // func: 콜백함수
}
console.log(tripleNum(triple, 3)); // 9
// 함수 triple은 고차함수 tripleNum의 콜백함수
高次関数関数を返すときfunction add(num){ // add: 다른 익명함수를 리턴하는 고차함수
return function (num2) { // 익명함수: 콜백함수
return num + num2;
}
}
add(2)(3) // add(2)는 함수임으로 ();를 함수 호출 연산자 ();를 사용할 수 있음
// 5
高次関数関数をパラメータとして受け取り、関数を返します.function double(num) {
return num * 2;
}
function doubleAdder(added, func) {
const doubled = func(added);
return function (num) {
return num + doubled;
};
}
/*
* 함수 doubleAdder는 고차 함수입니다.
* 함수 doubleAdder의 인자 func는 함수 doubleAdder의 콜백 함수입니다.
* 함수 double은 함수 doubleAdder의 콜백으로 전달되었습니다.
*/
// doubleAdder(5, double)는 함수이므로 함수 호출 기호 '()'를 사용할 수 있습니다.
doubleAdder(5, double)(3); // -> 13
// doubleAdder가 리턴하는 함수를 변수에 저장할 수 있습니다. (일급 객체)
const addTwice3 = doubleAdder(3, double);
addTwice3(2); // --> 8
JavaScriptに高差関数を内蔵Achievement Goals
アレイに高次関数filterが内蔵されていることは理解できます.filterの理解に基づいて,残りの高次関数を自分で学習することができる.
forEach, find, filter, map, reduce, sort, some, every 抽象について説明できます.抽象的な観点から,高次関数が持つ利点を説明できる.高次関数を使用してプログラムを記述できます.1. map
定義#テイギ#
すべての要素が同じ動作を持つ値を返すすべての方法
コールバック関数
行動は私自身で作成し、
함수
で作成し、パラメータとして使用する必要があります.immutable
既存のシナリオを変更しない
リファレンスコード
// let으로 선언된 배열 arr에 대하여
let arr = [1, 2, 3]
// map 메소드를 이용하여 모든 요소에게 동일하게 3을 곱해준 값을 반환하는 새로운 배열을 변수 result에 담는다.
let result = arr.map((el) => el * 3)
// result를 반환한다.
return result;
2. filter定義#テイギ#
1つの方法では、すべての要素で私が望んでいる値だけをフィルタして返します.
コールバック関数
行動は私自身で作成し、
함수
で作成し、パラメータとして使用する必要があります.immutable
既存のシナリオを変更しない
リファレンスコード
// let으로 선언된 배열 arr에 대하여
let arr = [1, 2, 3]
// filter 메소드를 이용하여 모든 요소 중 짝수인 값만 필터링하여 반환하는 새로운 배열을 변수 result에 담는다.
let result = arr.filter((el) => el % 2 === 0);
// result를 반환한다.
return result
3. reduce定義#テイギ#
配列を値にする方法
プロセス
アレイ内の各要素
特定の方法(関数)による
あなたが望む形で
凝縮する.(reduction)
初期値が指定されていません.
배열의 첫 번째 인덱스인 요소
は「初期値」です.初期値は
누적값(acc)
の基礎である.次の要素から
현재값(cur)
です.「累積値」および「現在値」は、弊社の希望に応じて累積値に格納されます.
このプロシージャを配列の最後のインデックス要素に繰り返します.
返却する
最後の
누적값(acc)
を返しますリファレンスコード
// let으로 선언된 배열 arr에 대하여
let arr = [1, 2, 3]
// reduce 메소드를 이용하여 원하는 행동에 의하여 누적값을 저장하는 과정을 배열의 길이만큼 반복하여 새로운 변수 result에 할당한다.
let result = arr.reduce((acc, cur, idx) => {
acc + cur;
return acc;
}
// result를 반환한다.
return result
Self Guided LessonJavaScript配列法における高次関数(js array method)の学習
forEach
, find
, filter
, map
, reduce
, sort
, some
, every
filterメソッドのコールバック関数はtruthyまたはfalseyを返すことができます.ただし、filterメソッドのコールバック関数を使用して、Deep equalityで条件を明確に説明することをお勧めします.
したがって、コールバック関数は、内部条件に基づいて「真」(true)または「偽」(false)を返すことを推奨します.
抽象化
抽象化
いくつかの複雑なものをコアのみを抽出する状態に圧縮します.
(生産性向上)
値レベル抽象
値の受信と処理のみのレベル
関数===値を受信し、値==を返す複雑な論理が隠されています==
値レベルで抽象化
事故レベル抽象**
思考の抽象化:伝達関数(思考の束縛)の処理レベル
Reference
この問題について([JS/Node]高次関数), 我々は、より多くの情報をここで見つけました https://velog.io/@djdu4496/JSNode-고차함수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol