자바스크립트 함수 형태

boyeonJ·2023년 6월 26일
0

JavaScript Basic

목록 보기
11/24

javascript에는 다양한 함수의 형태가 존재합니다.

즉시 실행 함수

정리

중첩함수

정리

콜백함수

정리

재귀 함수

함수가 자기 자신을 호출하는 것을 재귀 호출이라고 합니다. 재귀함수는 재귀 호출을 수행하는 함수를 말합니다.

재귀 함수는 함수 내부에서 자기자신을 호출하는 것이기 때문에 함수이름으로도 호출이 가능합니다. (물론 식별자로도 호출 가능)

재귀함수는 기본적으로 자기 자신을 무한 호출합니다. 따라서 멈출 수 있는 탈출 조건이 반드시 필요합니다. 그렇지 않으면 스택 오버플로우 에러가 발생합니다.

재귀함수는 반복되는 처리를 반복문 없이 구현할 수 있다는 장점을 가지지만 무한 반복에 빠질 위험(스택 오버플로우 에러)이 있습니다. 따라서 재귀함수로 구현함으로써 직관적이고 이해하기 쉬울때만 한정적으로 사용해야 합니다.


순수 함수와 비순수 함수

순수 함수 : 부수효과가 없는 함수
비순수 함수 : 부수효과가 있는 함수

부수효과란?
어떤 외부 상태에 의존하거나, 외부 상태(전역변수, 서버 데이터, 파일, console, DOM 등)를 변경하는 것

순수함수

순수함수는 부수효과가 없기 때문에 동일한 인수가 전달되면, 동일한 값을 반환하는 함수입니다. 따라서 외부 상태에 의존 하지 않고 오직 매개변수를 통해 함수 내부로 전달된 인수에게만 의존하여 값을 생성합니다.

  • 만약 외부상태에 의존하지 않더라도 내부 상태가 호출할때 마다 바뀌는 값(현재 시간)이라면 순수함수가 아니다.
  • 만약 인수를 받지 않으면 상수와 마찬가지이다.
  • 인수를 변경하지 않는다.(인수 불변성 유지)
  • 외부 상태를 변경하지 않는다.

비순수함수

함수 내부에서 외부 상태를 직접 참조하면 외부 상태에 의존하게 된다. 또한 참조에 의한 전달로 인하여 매개변수를 통해 객체를 전달 받게 된다면 비 순순 함수가 된다.

함수형 프로그래밍

비순수함수는 상태 변화를 추적하기 어렵게 만듭니다. 따라서 이를 지양하는 순수함수를 쓰는것이 좋습니다.

함수형 프로그래밍은 순수함수와 보조 함수의 좋마을 통해 부수 효과를 최소하해서 불변성을 지향하는 프로그래밍 패러다임입니다. 부수효과를 줄이기 위한 또다른 방법으로는 아래와 같은 것들이 있습니다.

  • 조건문, 반복문 제거 (복잡성 해결)
  • 변수 사용 억제
  • 생명주기를 최소화

함수형 프로그래밍은 프로그래밍 안전성을 높이려는 노력의 일환으로 볼 수 있습니다. 자바스크립트는 멀티 패러다임 언어이므로 객체 지향 프로그래밍 뿐만 아니라 함수형 프로그래밍도 적극 활용하고 있습니다.

0개의 댓글