Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- You are running `create-react-app` 5.0.0
- TypeScript
- 구름톤
- which is behind the latest release (5.0.1).
- Til
- create-react-app오류
- 회고
Archives
- Today
- Total
비전공 프론트엔드 개발자
고차함수를 간단하게 정리해보자! 본문
- 일급객체 ( 함수는 일급 객체이다 ! )
변수에 할당 할 수 있다.
const square = function (num) {
return num * num;
};
// 변수 square에는 함수가 할당되어 있으므로 (일급 객체), 함수 호출 연산자 '()'를 사용할 수 있습니다.
output = square(7);
console.log(output); // --> 49
다른 함수의 전달인자로 전달될 수 있다.
다른 함수의 결과로 리턴될 수 있다.
- 고차 함수
=> 함수를 전달 인자로 받을 수 있고, 함수를 리턴 할 수 있는 함수이다.
- 다른 함수를 전달 인자로 받는 경우
function double(num) {
return num * 2;
}
function doubleNum(func, num) {
return func(num);
}
let output = doubleNum(double, 4);
console.log(output); // -> 8
- 함수를 리턴하는 경우
function adder(added) {
return function (num) {
return num + added;
};
}
let output = adder(5)(3); // -> 8
console.log(output); // -> 8
const add3 = adder(3);
output = add3(2);
console.log(output); // -> 5
- 함수를 인자로 받고 함수를 리턴하는 경우
function double(num) {
return num * 2;
}
function doubleAdder(added, func) {
const doubled = func(added);
return function (num) {
return num + doubled;
};
}
// doubleAdder(5, double)는 함수이므로 함수 호출 기호 '()'를 사용할 수 있습니다.
doubleAdder(5, double)(3); // -> 13
// doubleAdder가 리턴하는 함수를 변수에 저장할 수 있습니다. (일급 객체)
const addTwice3 = doubleAdder(3, double);
addTwice3(2); // --> 8
( 여기서 double 함수는 콜백으로 전달되었다 ! )
콜백 함수란? => 어떤 함수의 전달인자로 사용되는 함수 !
커링 함수란? => 함수를 리턴하는 함수 !
- 내장 고차함수 ( filter, map, reduce )
- filter() => 특정 조건(함수)에 만족하는(true 일때) 요소만 골라준다. ( 새로운 배열을 반환해줌 === 원본에 영향을 주지 않는다 )
( !! 분류할 때 쓴다. ) ( 배열을 특정 조건에 맞게 걸러낸다. )
let arr = [1,2,3]
console.log(arr.filter (짝수만)) // [2]
- map() => 특정 조건(함수)에 의해 다른 요소로 지정된다. ( 새로운 배열을 반환해줌 === 원본에 영향을 주지 않는다. )
( 배열의 전체 요소에서 각 요소를 컨트롤 할 수 있다. like 반복문 처럼?)
-reduce() => 특정 조건(함수)에 따라 원하는 형태로 응축한다.
( 요소 전체를 순회하며 하나의 값으로 만들어 준다. === 값이 반환된다. )
+a 유튜브 강의 영상 첨부
https://youtu.be/vqdzVZxoRtM?t=335
잘못된 정보가 있다면 말씀 부탁드립니다.
'개인공부' 카테고리의 다른 글
Express 를 간단하게 훓어보자! (0) | 2022.06.17 |
---|---|
Mini node 서버 체험?해보기 (0) | 2022.06.16 |
Web기초. CORS? & SOP? (0) | 2022.06.15 |
HTTP 네트워크 기초 (2) | 2022.06.09 |
동기 방식과 비동기 방식에 관하여(callback Hell, promise, async&await) (0) | 2022.05.30 |