순수 함수란 1) 입력 값에 대해 항상 동일한 출력값을 반환하며**, 2) 부수 효과가 없는 함수**
e.g. 순수함수
function add(a, b) {
return a + b;
}
console.log(add(10, 5));
console.log(add(10, 5));
e.g. 순수함수 X
let c = 10;
function add2(a, b) {
return a + b + c;
}
console.log(add2(5,5)) // 20
c = 15
console.log(add2(5,5)) //25
**// 항상 동일한 인자가 들어가도 c값에 따라 결과값이 달라진다. => 순수함수가 아님**
// 부수효과가 발생하는 경우
let c = 3;
function add3(a,b){
c = 5; // 부수 효과
b = 3 * c; // 부수 효과
return a + b + c;
}
부수 효과란 함수의 핵심 목적에서 벗어나 외부 세계에 영향을 주는 행위가 포함된 함수