함수는 함수를 가리키는 식별자와 한쌍의 소괄호인 함수 호출 연사자로 호출, 함수는 0개 이상의 인수를 가진다.
자바스크립트 함수는 매개변수와 인수의 개수가 일치하는지 확인하지 않는다. 또한, 자바스크립트는 동적 타입 언어이다.
이로인해 매개변수와 인수의 개수의 차이가 생겨 예상하지 못한 값을 반환하거나, 함수 내부에서 예상한 매개변수의 타입이 아닌 다른 타입의 값이 할당되어 오류가 생기곤 한다.
이상적인 함수는 한 가지 일만 해야 하며 가급적 작게 만들어야 한다. (매개변수는 최대 3개 이상을 넘지 않는 것을 권장)
함수는 return 키워드를 사용해 자바스크립트에서 사용 가능한 모든 값을 반환할 수 있다. (함수 호출은 표현식이다.)
함수 호출 표현식은 return 키워드가 반환한 표현식의 경가 결과, 즉 반환값으로 평가된다.
반환문은 두가지 역할을 가진다.
1. 함수 실행의 중단
2. return 뒤에 표현식을 평가에 값을 반환한다.
재귀함수 : 자기 자신을 호출하는 함수
재귀함수를 사용할 때는 반드시 탈출 조건을 만들어야 한다.
중첩함수: 함수 내부에 정의된 함수, 일반적으로 중첩함수는 자신을 포함하는 외부 함수를 돕는 헬퍼 함수의 역할을 한다.
콜백함수 : 함수의 매개변수를 통해 다른 함수의 내부로 전달되는 함수
고차함수 : 매개 변수를 통해 함수의 외부에서 콜백 함수를 전달받은 함수
순수함수 : 외부 상태에 의존하거나 변경하지도 않는 (부수효과가 없는) 함수
비순수함수 : 외부 상태에 의존하거나 변경시키는 (부수효과가 있는) 함수
함수형 프로그래밍은 순수 함수와 보조 함수의 조합을 통해 외부 상태를 변경하는 부수 효과를 최소화 해서 불변성을 지향하는 프로그래밍이다. 로직 내에 존재하는 조건문과 반복문을 제거해서 복잡함을 해결하고, 변수 사용을 억제하거나 생명주기를 최소화해서 상태 변경을 피해 오류를 최소화하는 것을 목표로 한다.
자바스크립트 함수 (1) (0) | 2022.03.04 |
---|---|
원시 값과 객체의 비교 (0) | 2022.03.02 |
논리 연산자를 사용한 단축 평가 (0) | 2022.02.22 |
동적 타입 언어와 변수 (0) | 2022.02.17 |
React.useState() (0) | 2022.02.14 |
댓글 영역