
안녕하세요.
지난 포스팅에 이어서 모던 자바스크립트 Deep Dive 책을 바탕으로 스터디를 진행하면서 정리한 내용을 기술해보려합니다!
수학의 함수와 같이 입력(input)을 받아 출력(output)을 내보내는 일련의 과정(statement)을 정의한 것
이런 과정을 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 만든 것

- 미리 정의된 함수를 재사용함으로써 비용이 절감됨.
- 또한 유지보수의 편의성을 높이고 실수를 줄여 코드의 신뢰성을 높이는 효과가 있음.
- 적절한 함수 이름을 사용하여 함수의 역할을 파악하여 코드의 가독성을 향상시킴.
함수 리터럴은 function 키워드, 함수 이름, 매개 변수 목록, 함수 몸체로 구성



아래의 예제는 인수의 개수는 확인하고 있지 않지만 arg 객체를 통해 인수 개수를 확인할 수도 있습니다.

아래의 예제는 인수가 전달되지 않은 경우 단축 평가를 사용해 매개변수에 기본값을 할당하는 방법입니다.

- 이상적인 함수의 매개변수 개수는 0개이며 적을수록 좋음
- 매개변수의 개수가 많다는 것은 함수가 여러가지 일을 한다는 증거이므로 바람직하지 않음
- 이상적인 함수는 한 가지 일만 해야 하며 가급적 작게 만들어야 함
- 따라서 매개변수는 최대 3개 이상을 넘지 않는 것은 권장함
함수는 return 키워드와 표현식(반환값)으로 이뤄진 반환문을 사용해 실행 경과를 함수 외부로 반환(return)할 수 있음.



반복되는 처리를 위해 사용하는 함수


- 함수 내부에 정의된 함수를 중첩 함수(nested function) 또는 내부 함수(inner function)
- 중첩 함수를 포함하는 함수는 외부 함수(outer function)
- 중첩 함수는 외부 함수 내부에서만 호출 가능
- 일반적으로 자신을 포함하는 외부 함수를 돕는 헬퍼 함수(helper function)의 역할

함수의 매개변수를 통해 다른 함수의 내부로 전달되는 함수

매개 변수를 통해 함수의 외부에서 콜백 함수를 전달받은 함수

- 동일한 인수가 전달되면 언제나 동일한 값을 반환하는 함수
- 어떤 외부 상태에도 의존하지 않고 오직 매개변수를 통해 함수 내부로 전달된 인수에게만 의존해 반환값을 생성
- 함수 외부의 상태를 변경하지 않음

- 반대로 함수의 외부 상태에 따라 반환값이 달라지는 함수
- 외부 상태에 의존하는 함수
- 함수의 외부 상태를 변경하눈 부수효과가 있음

이상으로 함수에 대한 포스팅을 마치도록 하겠습니다!