고차함수

Verba volant, scripta manent·2020년 12월 5일
0

JavaScript

목록 보기
9/20
post-thumbnail

고차함수 (Higher-order function)

고차함수의 정의

고차함수는 함수를 인자로 받거나 함수를 리턴하는 함수를 뜻한다.

function callBackFunction() {
  console.log('call back');
}

function justFunction(callbackFn) {
  callbackFn();
}

콜백함수(callback function)란?

다른함수(caller)의 인자로 전달되는 함수를 콜백함수(callback function)라고 한다.
따라서 콜백함수를 전달받은 함수는 이 콜백함수를 호출(invoke)할 수 있다.

JavaScript 공부를 하면 이 과정이 크게 놀랍지는 않다.
왜냐면 JavaScript 에서는 변수에 상수 및 변수 뿐만 아니라 다른 함수도 할당이 가능하다고 배워왔기 때문이다.
->이는 JavaScript에서 함수를 일급객체(first-class object) 로 취급하기 때문이다.

일급객체(first-class object)란?

프로그래밍에서 일급객체란, 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다.
보통 함수에 매개변수로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원할 때 일급 객체라고도 한다.

따라서!
JavaScript에서 함수를 일급객체로 취급 한다는 것 -> 함수를 다음과 같은 용도로 사용 할 수 있다.

JavaScript에서 함수가 할 수 있는 것들

  • 변수에 할당(assignment)될 수 있다.
  • 다른 함수에 인자(argument)로 전달될 수 있다.
  • 다른 함수의 결과로서 리턴될 수 있다.

JavaScript에 내장된 고차함수 메소드

JavaScript에는 기본적으로 내장(Built-in)되어 있는 고차 함수들이 있다.
대표적인 내장 고차함수들을 몇 가지 살펴보자.

1. filter()

: 배열의 요소 중 특정 조건을 만족하는 요소들만을 걸러내는 메소드.

2. map()

: 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 '새로운 배열'을 반환하는 메소드.

3. reduce()

: 배열의 각 요소에 대하여 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환하는 메소드.
리듀서(reducer) 함수를 어떻게 사용하느냐에 따라 다양한 용도로 사용이 가능하다.

4. find()

: 주어진 함수를 배열요소 각각에 대하여 실행하는 메소드.

5. sort()

: 배열의 요소를 적절한 위치(일반적으로 사전식 정렬)에 정렬한 후 그 배열을 반환하는 메소드.
복사본을 만드는 것이 아닌, 원 배열이 정렬되는 것이다.

6. some()

: 배열 안의 하나의 요소(or) 라도 주어진 판별함수를 통과하는지 테스트하는 메소드.
빈 배열을 호출한다면 무조건 false가 된다.

7. every()

: 배열 안의 모든 요소(and) 가 주어진 판별함수를 통과하는지 테스트하는 메소드.
빈 배열을 호출하면 무조건 true가 된다.

profile
말은 사라지지만 기록은 남는다

0개의 댓글