[기술면접/JS] Pure Function (순수 함수)

강민혁·2023년 3월 3일
0

기술면접 | JS

목록 보기
9/17

JS에서 Pure Function (순수 함수)에 대해 설명하세요

Keyword

인자 최소 하나 이상, side-effect, 입출력, 외부 상태, 테스트 코드, 예상치 못한 오류, 불변성, Math, max, min, random


Script

먼저 순수 함수는 인자를 최소 하나 이상 받고, 인자에 의해서만 값이 결정됩니다. 그리고 side-effect가 없고, 입출력을 수행해서도 안되며, 값이나 함수를 반환해야 합니다.

순수 함수로 설계했을 때의 장점은 외부 상태를 변화시키는 side-effect가 발생하지 않기 때문에, 테스트 코드를 작성하기도 쉽고, 예상치 못한 오류를 방지할 수 있게 됩니다. 그래서 마치 수학의 함수처럼 불변성을 가지고, 항상 같은 입력값이 들어왔을 때 같은 값을 반환하게 됩니다.

대표적인 예시로, JS에서 Math 라이브러리의 max, min 함수는 순수 함수이고, random 함수는 비순수함수입니다. max, min 함수는 같은 값이 들어오면 항상 같은 값을 반환하지만, random 함수는 그렇지 않기 때문입니다.


Additional

배열 고차 함수 중 순수 함수

map, filter, reduce, find, findIndex, some, every

배열 고차 함수 중 비순수 함수

sort, reverse


Reference

BOOK - modern javascript deep dive

[JavaScript]함수형 프로그래밍, 순수 함수

profile
with programming

0개의 댓글