
First Class Citizen : Function
- Assignment - 변수에 할당할 수 있다.
- Argument - 다른 함수의 인자로 전달될 수 있다.
- Return Value - 다른 함수의 결과로서 반환될 수 있다.
함수 정의 방법
- Function Expression : 함수를 변수에 할당함으로써 함수를 표현
- Function Declaration :
function키워드를 이용하여 함수를 선언
함수 표현식과 함수 선언식의 결정적인 차이는 Hoisting의 적용 여부입니다. 선언식은 호이스팅이 적용되지만 표현식은 적용되지 않습니다. 다만 지나치게 선언식의 호이스팅에 의존하는 것은 유지 보수 측면에서 오히려 단점이 될 수 있습니다.(Declarative Programming, 선언적 프로그래밍)
반면에 표현식은 함수의 할당과 실행의 위치가 어느 정도 예측 가능하기 때문에 가독성이 좋지만 각 할당과 실행의 명령 및 절차를 잘 따라야 합니다.(Imperative Programming, 명령적-절차적 프로그래밍)
자료 출처: 코드스테이츠(CodeStates)