본문 바로가기

개발자 강화/프론트엔드

[매일메일] 함수 선언식과 함수 표현식의 차이점? (FE.250131)

함수 선언식

이름이 있는 함수

자바스크립트 엔진이 코드를 실행하기 전에 메모리에 로드되므로, 호이스팅 발생함

함수 선언식으로 정의된 함수는 코드 내 어디서든 호출할 수 있음

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