함수 선언식과 함수 표현식은 자바스크립트에서 함수를 정의하는 두 가지 방법으로, 이 둘의 주요 차이점은 호이스팅에 있습니다.
함수 선언식은 이름이 있는 함수입니다. 함수 선언식은 자바스크립트 엔진이 코드를 실행하기 전에 메모리에 로드하기 때문에 호이스팅이 발생합니다. 즉, 함수 선언식으로 정의된 함수는 코드 내 어디서든 호출할 수 있습니다.
console.log(add(2, 3)); // 5
function add(a, b) {
return a + b;
}
여기서 add 함수는 선언된 위치보다 앞에서 호출해도 정상 작동합니다. 이는 자바스크립트 엔진이 실행 전에 함수 선언을 미리 메모리에 로드했기 때문입니다.
그에 반해 함수 표현식은 변수에 익명 함수를 할당하는 방식으로, 할당된 변수명으로 호출할 수 있습니다. 함수 표현식은 호이스팅이 되지 않으며, 변수에 할당된 이후에만 호출할 수 있습니다. 따라서 코드의 흐름상 변수가 선언된 후에만 해당 함수를 사용할 수 있습니다.
console.log(multiply(2, 3)); // not defined 에러 발생
const multiply = function (a, b) {
return a * b;
};
정리해서 말씀 드려보자면 함수 선언식은 호이스팅이 되어 코드의 어디서든 호출이 가능하지만, 함수 표현식은 변수에 할당된 후에만 사용할 수 있습니다.
LIST
'4차산업혁명의 일꾼 > 웹개발' 카테고리의 다른 글
Promise의 resolve()와 fulfilled에 대해서 설명해주세요. (0) | 2025.04.21 |
---|---|
로드 밸런싱에 대해서 설명해주세요 (0) | 2025.04.21 |
다중 서버 환경에서 세션 기반 인증 방식을 사용하는 경우 발생할 수 있는 문제점은 무엇인가요? (0) | 2025.04.18 |
ES6에 대해서 아는 대로 설명해 주세요. (2) | 2025.04.17 |
SOLID 원칙에 대해서 설명해 주세요. (0) | 2025.04.17 |