프로그래밍 패러다임 중 하나
순수 함수와 불변성 강조하는 방식
어떻게 보단 무엇에 집중하고 순수 함수를 조합하는 형태로 코드를 작성한다는 특징
핵심 개념 중 하나는 순수함수
순수함수란 동일한 입력에 대해 항상 동일한 결과를 반환하고, 외부 상태를 변경하지 않는 함수
function add(a, b) {
return a + b;
}
만약 함수 내에 데이터 베이스에 접근하거나 전역 변수를 변경하는 등 부수 효과를 포함하면 순수 함수가 아님
다음 중요 개념 불변성
데이터를 직접 변경하는 것을 피하고, 기존 데이터를 기반으로 새로운 데이터를 생성하는 방식
ex - 배열의 값 변경 시 push대신 concat을 사용하는 것이 함수형 프로그래밍에 적합한 방식
const numbers = [1, 2, 3];
const newNumbers = numbers.concat(4);
console.log(newNumbers); // [1, 2, 3, 4]
console.log(numbers); // [1, 2, 3] (원본 배열이 변경되지 않음)
이외에 고차함수, 커링, 함수 합성, 재귀 등의 기법 적극적 활용하기도 함