자바스크립트
[JavaScript] 34. Function declarations(선언) VS. Expressions(표현)
조바단
2020. 12. 4. 22:26
Javascript에는 함수를 사용하는 방법으로 Arrow function을 제외하면 2가지가 있다.
무엇을 쓸지는 개발자의 기호에 달려있다.
다만 구조적인 코드를 짜기 위해서는 Expression이 더 좋다.
그 이유는 '함수 정의 - 함수 호출' 관계에 있다.
상식적으로 당연히 정의를 먼저해야 호출해서 쓸 수 있다.
그런데 Declarations으로 함수를 정의했을 경우, 호출이 먼저 되어도 오류가 발생하지 않는다.
간단한 코드는 문제 없으나, 복잡해지면 오류가 어디서 발생했는지 찾기가 어렵다.
반면 Expressions은 정의를 내려야 호출이 가능하다. 구조적인 코드가 가능한 이유다.
- 정의 - 호출 가능
- 호출 - 정의 가능
2. Function Expressions
- 정의 - 호출 가능
- 호출 - 정의 불가능
// Function declaration
const age1 = calcAge1(1991); // 가능
function calcAge1(birthYear){
return 2037 - birthYear;
}
const age2 = calcAge1(1991); // 가능
// =========================================================
// Function expression
const age3 = calcAge1(1991); // 불가능
const calcAge2 = function(birthYear){
return 2037 - birthYear;
}
const age4 = calcAge1(1991); // 가능
하단 강좌를 따라 공부하며 기록한 내용입니다.