JAVASCRIPT
외부 요인에 영향을 받지 않아 함수에 동일한 인자를 주었을 때 항상 같은 값을 반환하는 함수
//순수함수
function a (x,y) {
return (x+y) ;
}
console.log(a(5,3)) //8
console.log(a(5,3)) //8
위에 코드에서 인자로 똑같이 (5,3)을 주면 항상 같은 값(8)을 반환함
외부요인으로 인해 반환하는 값이 달라지는 함수
//비순수 함수
const x = 10
function a (y,z) {
retuen (x,y,z)
}
console.log(a(5,3)) //18
const x = 20
function a (y,z) {
retuen (x,y,z)
}
console.log(a(5,3)) //28
위에 코드에서는 인자로 똑같이 (5,3)을 줘도 함수 밖에 x의 값(외부 요인)이 바뀌면
a 함수의 return 값이 바뀜.
비순수 함수는 부수효과(Side Effect)가 발생할 가능성이 있음
부수효과가 발생 => 코드가 예측 불가능해지고 상태 변화를 추적하기 어려워짐 => 오류를 야기하거나 발생 했을 때 해결하기 어려움
예측 가능 : 동일한 input에 대해 예측 가능한 output이 나옴.
가독성 : 독립된 실행 단위를 가지고 있어서 누구나 그 목적을 알 수 있음.