자바스크립트에서 함수는 아래와 같은 3가지 특징을 가지고 있다.
이러한 특징들 때문에, 자바스크립트에서 함수는 일급 객체라고 한다.
함수는 일급 객체여서 고차 함수로 활용이 가능!
고차 함수는 다음과 같은 함수를 포함한다.
함수를 전달인자로 가지는 함수는 고차함수이다.
이때, 함수의 전달인자가 되는 함수를 콜백(callback,답신)함수라고 한다.
함수를 리턴하는 함수는 고차 함수이다. 함수를 리턴하는 함수를 처음 고안해낸 사람의 이름을 따서 커링함수라고 부르기도 한다.
자주 쓰이는 내장 고차 함수들이 있다.
배열 메서드들 중 일부가 대표적인 내장 고차 함수 이다.
filter 메소드는 배열의 각 요소를 조건에 따라 필터처럼 걸러서,
조건을 통과하는 요소들만 따로 모아 새로운 배열로 리턴한다.
filter 활용 과정
---> 값을 걸러내어 배열로 리턴하고자 할때 사용
arr.filter(function(el) {
return el % 2 === 0;
})
() 내부에는 리턴값이 참/거짓인 함수가 전달인자로 들어간다.
el은 배열의 요소이다.
조건이 참이면, el은 새로운 배열의 요소로 추가된다.
map 메소드는 배열의 각 요소를 특정 논리(함수를 거쳐서),
다른 요소로 변환한 값을 모아 새로운 배열로 리턴한다.
map 활용 과정
---> 각각의 요소를 다른 값으로 바꾸어 배열로 리턴하고자 할때 사용
reduce 메소드는 배열의 각 요소를 특정 논리(함수)를 거쳐서,
하나의 값으로 응축시킨다.
reduce 활용 과정
---> 여러 요소를 하나의 결과값으로 응축시키고자 할때 사용
reduce에서는 중요한 키워드가 세가지 있다.