Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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
Archives
Today
Total
관리 메뉴

비전공 프론트엔드 개발자

고차함수를 간단하게 정리해보자! 본문

개인공부

고차함수를 간단하게 정리해보자!

JJ_hyun 2022. 5. 25. 01:07
  • 일급객체 ( 함수는 일급 객체이다 ! )

변수에 할당 할 수 있다. 

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 

 

잘못된 정보가 있다면 말씀 부탁드립니다.