요약 

 

비순수함수는 외부상태를 변경하므로 상태 변화를 추적하기 어려워진다. 

따라서 함수 외부상태의 변경을 지양하는 순수함수를 사용함이 좋다. 

 

순수함수 : 외부상태에 의존하지 않고 외부상태를 변경하지 않음. 즉 부수효과가 없다.

비순수함수 : 외부상태에 의존하거나 외부상태를 변경함. 즉 부수효과가 있다.

 

부수효과란 외부 상태를 변경하거나, 함수가 받은 인자의 상태를 변경시키는 것. 

 

순수함수

var count = 0; // 현재 카운트를 나타내는 상태

// 순수 함수 increase는 동일한 인수가 전달되면 언제나 동일한 값을 반환한다.
function increase(n) {
	return ++n;
}

// 순수 함수가 반환한 결과값을 변수에 재할당해서 상태를 변경
count = increase(count);
console.log(count); // 1

count = increase(count);
console.log(count); // 2

외부 상태에 의존하지 않고, 외부 상태를 변경하지도 않는다. 

= 동일한 인수가 전달되면 동일한 값을 반환한다.

 

 

비순수함수

var count = 0; // 현재 카운트를 나타내는 상태: increase 함수에 의해 변화한다.

// 비순수 함수
function increase() {
	return ++count; // 외부 상태에 의존하며 외부 상태를 변경한다.
}

// 비순수함수는 외부 상태 `count`를 변경하므로 상태 변화를 추적하기 어려워진다.
increase();
console.log(count); // 1

increase();
console.log(count); // 2

외부 상태(count)에 의존하며 또한 외부상태를 변경한다. 부수효과 발생. 

 

 

 

+ Recent posts