개발자 강화/프론트엔드
[매일메일] 함수 선언식과 함수 표현식의 차이점? (FE.250131)
suyeonshim
2025. 1. 31. 23:31
함수 선언식
이름이 있는 함수
자바스크립트 엔진이 코드를 실행하기 전에 메모리에 로드되므로, 호이스팅 발생함
함수 선언식으로 정의된 함수는 코드 내 어디서든 호출할 수 있음
console.log(add(2, 3)); // 5
function add(a, b) {
return a + b;
}
함수 표현식
변수에 익명 함수를 할당함
함수 표현식은 호이스팅이 되지 않아 변수에 할당된 이후에만 호출할 수 있음
console.log(multiply(2, 3)); // not defined 에러 발생
const multiply = function (a, b) {
return a * b;
};
+ 호이스팅이 뭔가요?
이와 관련된 이 블로그 다른 글: 자바스크립트의 호이스팅 https://developer-dreamer.tistory.com/113
자바스크립트의 호이스팅(feat. 인터프리터 언어)(FE.250110)+(FE.241230)
호이스팅이란?- 변수와 함수 선언이 실행 전에 scope의 맨 위로 끌어올려지는 것처럼 보이는 동작- 변수를 선언하기 전에 호출해도 에러가 발생하지 않음. 선언된 위치보다 상단에서 변수에 접근
developer-dreamer.tistory.com
출처
[1] 매일메일. 250131. 함수 선언식과 함수 표현식의 차이점에 대해서 설명해주세요. 68번 https://maeil-mail.kr