순수 함수

Verba volant, scripta manent·2021년 10월 5일
0

JS면접뽀시기

목록 보기
9/10

순수 함수(Pure Function)란?

어떠한 외부 상태에 의존하지도, 변경하지도 않는(부수 효과가 없는) 함수

순수 함수의 특징

  1. 동일한 인수가 전달되면 언제나 동일한 값을 반환한다.
    (외부 상태에도 의존하지 않고, 오직 매개 변수를 통해 함수 내부로 전달된 인수에만 의존해 반환 값을 만든다.)
  2. 함수의 외부 상태를 변경하지 않는다.
    -> side-effect를 갖지 않는다.

순수 함수의 조건

  1. 동일한 인자값을 받으면 항상 동일한 리턴값을 반환한다.
  2. 어디서 호출되든 동일한 결과를 보여준다.
  3. 외부에 영향을 주지도 받지도 말야아 한다.

순수 함수의 예시

function add(a, b) {
  return a + b;
}

// 외부 상태에 상관없이 a,b 인수의 값으로만 반환값을 갖는다.

비순수 함수(Impure Function)란?

순수함수의 반대되는 개념으로, 외부 상태에 의존하거나 외부 상태를 변경하는(부수 효과가 있는)함수

비순수 함수의 특징

외부 상태를 변경하는 side-effect를 갖는다.

비순수 함수의 예시

var c = 5;
function add2(a, b) {
  c = b;
  return a + b + c;
}
// c의 값이 b가 무엇이 들어오느냐에 따라 달라져서 외부에 영향을 줘버릴 뿐만 아니라
// 외부 변수인 c에 따라 값이 변함

결론

  1. 순수 함수는 외부 상태에 의존하지 않는 함수이다.
  2. 순수 함수의 반대되는 개념은 외부 상태에 의존하는 비순수 함수이다.
profile
말은 사라지지만 기록은 남는다

0개의 댓글