Ajax, setTimeout, console.log 등의 호출이 모두 사이드 이펙트이다.Ajax나 setTimeout과 같은 함수들은 브라우저 API를 사용하는 일이고, console.log는 브라우저의 콘솔창에 문자열을 출력하는 함수이기 떄문이다.사이드 이펙트는 코드를 읽기 힘들게 만든다. 동일한 인풋임에도 불구하고 상황에 따라 결과가 달라질 수 있기 때문에 이게 왜 이런 결과가 만들어졌는지 이곳 저곳을 살펴야 할 수 있다. 이말은 즉, 코드를 유지보수하기 어렵게 만든다는 말과도 같다.
<aside> 💡 순수함수는 컨텍스트와 관계없이 동작하기 때문에 가독성이 좋다.
단지 필요한 값들을 매개변수로 받을 뿐이며, 어플리케이션의 상태를 필요로하지 않는다.
</aside>
순수함수는 같은 인풋엔 같은 결과가 나오기 때문에 단위 테스트를 작성하기가 다른 함수에 비해 간편하다.