본문 바로가기
Frontend

호이스팅

by 신인프로그래머 2024. 3. 1.

 

자바스크립트 '호이스팅'에 대해서 알아보자

 

 

호이스팅은 자바스크립트에서 변수와 함수의 선언이 스코프 내에서 최상단으로 끌어올려지는 동작을 말한다

 

이것은 코드 실행되기 전에 발생하며,

코드가 실행되기 전에 자바스크립트 엔진이 변수 및 함수 선언을 스캔하고 해당 스코프 내에서 최상단으로 끌어올린다

 

이로 인해 변수와 함수가 실제 선언된 위치와 상관없이 참조될 수 있다

즉, 변수를 선언 전에 사용해도 에러가 발생하지 않고 값이 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