반응형

 내용은 이웅모 님의 모던 "자바스크립트 DeepDive" 책을 보고 정리한 내용입니다. 저작권 보호를 위해 책의 내용은 요약되었습니다.

호이스팅이란?

호이스팅(Hoisting)은 JavaScript에서 변수와 함수 선언이 해당 스코프의 최상위로 끌어올려지는 현상을 말한다.

1. 변수의 스코프

선언만 호이스팅되고 초기화는 호이스팅되지 않으므로 변수를 선언하기 전에 초기화가 이루어지면 변수는 undefined로 초기화된다.

 

console.log(x); // undefined
var x = 5;

 

2. 함수의 스코프

함수 선언문은 함수 전체가 호이스팅되고 함수 표현식은 변수 선언만 호이스팅된다. 함수 선언문을 사용한 경우, 함수를 선언하기 전에도 함수를 호출할 수 있다.

 

foo();

function foo() {
  console.log('hello'); // hello
}

 

 

호이스팅은 코드의 가독성과 유지보수성을 낮출 수 있기 때문에, 변수와 함수를 선언하기 전에 사용하지 않도록 주의해야 한다.

반응형

+ Recent posts