호이스팅은 자바스크립트에서 변수와 함수의 선언이 스코프 내에서 최상단으로 끌어올려지는 동작을 말한다
이것은 코드 실행되기 전에 발생하며,
코드가 실행되기 전에 자바스크립트 엔진이 변수 및 함수 선언을 스캔하고 해당 스코프 내에서 최상단으로 끌어올린다
이로 인해 변수와 함수가 실제 선언된 위치와 상관없이 참조될 수 있다
즉, 변수를 선언 전에 사용해도 에러가 발생하지 않고 값이 undefined로 초기화된다
함수 선언식(함수 선언문)은 전체가 호이스팅된다
함수 표현식은 변수 선언만 호이스팅된다
console.log(num); // undefined
var num = 5;
console.log(func1()); // "Hello!"
function func1() {
return "Hello!";
}
console.log(func2); // undefined
var func2 = function() {
return "Bye!";
};
참고로 함수 선언식은 함수 이름과 함께 함수를 선언하는 방식이고
함수 표현식은 변수에 함수를 할당하는 방식이다
'Frontend' 카테고리의 다른 글
비동기 함수 (0) | 2024.03.02 |
---|---|
자바스크립트 클로저 Closure (0) | 2024.03.02 |
async / await 사용법 (0) | 2024.03.01 |
프론트엔드 면접 질문 앞으로 정리해나갈 것들 리스트 (0) | 2024.03.01 |
면접 준비.. (1) | 2024.02.28 |