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