함수 선언식
이름이 있는 함수
자바스크립트 엔진이 코드를 실행하기 전에 메모리에 로드되므로, 호이스팅 발생함
함수 선언식으로 정의된 함수는 코드 내 어디서든 호출할 수 있음
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
'개발자 강화 > 프론트엔드' 카테고리의 다른 글
[매일메일] 클로저란? (FE.241212) (1) | 2025.02.01 |
---|---|
[매일메일] 자바스크립트 함수의 특징 (FE.250101) (1) | 2025.01.31 |
[매일메일] 자바스크립트 ES6 버전이란? (FE.250130) (0) | 2025.01.30 |
🌟[매일메일] 브라우저 렌더링 파이프라인이란? (FE.241224/241213) (0) | 2025.01.29 |
🌟[매일메일] useEffect란? useLayoutEffect와 차이 (FE.250113/250128) (0) | 2025.01.28 |