고차함수
일급 객체(first-class citizen)
- 함수는 대표적인 일급 객체
(1) 변수에 할당(assignment) 할 수 있다.
(2) 다른 함수의 인자(argument)로 전달될 수 있다.
(3) 다른 함수의 결과로서 리턴될 수 있다.
=> 함수를 데이터(string
,number
,boolean
, array
, object
처럼 다룰 수 있다.)
고차함수란(higher-order function)
- 함수를 인자로 받거나 함수를 리턴하는 함수
1) 함수를 인자로 받는 경우
2) 함수를 리턴하는 경우
3) 함수를 인자로 받고, 함수를 리턴하는 경우
내장 고차함수
- filter: 특정 조건을 만족하는 요소들만 걸러내는 메소드
걸러내는 기준이 되는 특정 조건은 함수 형태로 filter 메소드의 인자로 전달되어야한다.
-
forEach
-
find
-
map
-
reduce
-
sort
-
some
-
every
추상화
- 복잡한 것을 압축해서 핵심만 추출한 상태로 만드는 것
추상화 = 생산성(productivity)의 향상
- 추상화의 관점에서 함수는 사고(thought) 또는 논리(logic)의 묶음
함수를 통해 얻은 추상화의 단계를 한 단계 더 높인 것이 고차함수
- 사고 수준의 추상화
더 생각해볼 주제(수정할 것)
- MapReduce 학습하기
- 자바스크립트에서 커링(currying)과 클로져(closure)의 차이 이해하기
- 선언형 프로그래밍(declarative programming)과 절차형(imperative programming)의 차이를 배열 메소드를 통해 이해하기
- 함수의 조합(function composition)에 대해 학습하기