코드에서 자주 볼 수 있는 함수 형식들이 여러 형태를 가지고 있어 기본 개념이지만 헷갈릴 수 있다.
그 중 변수와 함수가 혼재되어 있는 함수 표현식을 확인하고 기본 형태인 함수 선언문과 비교하여 정확히 파악해보자.
함수를 생성하고 변수에 값을 할당하는 것처럼 함수가 변수에 할당
함수가 어떤 방식으로 만들어졌는지에 관계없이 함수는 값이고, 따라서 변수에 할당 가능
=> "함수를 만들고 그 함수를 변수에 할당하기"
함수 표현식(Function Expression)과 함수 선언문(Function Declaration) 비교
// example
function sum(a, b) {
return a + b;
}
sayHi("Brian"); // Hello, Brian
function sayHi(name) {
alert(`Hello, ${name}`);
}
// example
// 함수가 변수 sum에 저장된 값이 되었음
let sum = function(a, b) {
return a + b;
}
sayHi("Brian"); // Error
const sayHi = function(name) {
alert(`Hello, ${name});
}
※ 함수를 선언해야 한다면 함수가 선언되기 이전에도 함수를 활용할 수 있어 함수 선언문 사용 추천. 유연한 코드 구성, 가독성 높임
※ 함수 표현식은 함수 선언 방식이 적합하지 않거나 조건에 따라 함수를 선언해야 하는 경우 사용