고차함수
고차 함수는 함수를 인수로 전달 받거나 함수를 반환하는 함수를 의미합니다.
자바스크립트의 함수는 일급 객체이므로 함수를 값처럼 인수로 전달할 수 있으며 반환할 수 도있다.
고차 함수는 외부 상태의 변경이나 가변 데이트를 피하고 불변성을 지향하는 함수형 프로그래밍에 기반을 두고 있다.
함수형 프로그래밍은 순수 함수와 보조 함수의 조합을 통해 로직 내에 존재하는 조건문과 반복문을 제거하여 복잡성을 해결하고 변수의 사용을 억제하여 상태 변경을 피하려는 프로그래밍 패러다임이다.
함수형 프로그래밍은 순수 함수를 통해 부수 효과를 최대한 억제하여 오류를 피하고 프로그램의 안정성을 높이려는 노력의 일환이라고 할 수 있다.
예시는 배열의 고차함수 이다.
Array.prototype.sort // 배열의 요소를 정렬하고 원본 배열을 변경합니다.
Array.prototype.forEach // 배열의 각 요소에 대한 주어진 함수를 실행하며 반환값은 undefined입니다.
Array.prototype.map// 배열의 각 요소에 대해 주어진 함수를 실행하고, 그 결과로 새로운 배열을 생성합니다.
Array.prototype.filter // 주어진 조건을 만족하는 요소들만을 모아 새로운 배열을 생성합니다.
Array.prototype.reduce // 배열의 각 요소에 대해 주어진 리듀서 함수를 실행하여 하나의 결과값을 만듭니다.
Array.prototype.some // 배열의 요소중 하나라도 주어진 조건을 만족하는지 검사하여 boolean값을 반환합니다.
Array.prototype.every // 배열의 모든 요소가 주어진 조건을 만족하는지 검사하여 boolean값을 반환합니다.
Array.prototype.find // 배열에서 주어진 조건을 만족하는 첫 번째 요소를 반환합니다.