#3. Javascript - Hoisting

박주현·2023년 6월 13일
0

호이스팅(Hoisting)

사전적 의미로 호이스팅은 끌어올리다는 뜻으로 자바스크립트에서는 변수를 끌어올린다.
즉, 변수가 함수 내에서 정의되면 선언이 함수의 최상단으로 올라가고 함수 밖에서 정의된 경우에는 전역 컨텍스트릐 최상단으로 이동한다.

선언 과 할당

호이스팅에 대해 이해하기 위해서는 선언(Declaration)과 할당(Assignment)에 대해서도 이해해야한다.
먼저 선언은 끌어올려지는 것, 즉 호이스팅의 대상이다.

function DeclarTest() {
  console.log(x); // undefined
  var x = 100;
  console.log(x); // 100
}
DeclarTest();

먼저, 위와 같은 코드에서 동작하면 자바스크립트에서는 출력 오류가 없겠지만 다른 언어에서는 오류가 발생한다.
자바스크립트에서는 undefined로 출력되고 넘어가는데 이유는
var x = 100; 의 구문에서 var x; 를 호이스팅하기 때문이다.

하지만, 할당(Assignment)는 런타임 과정에서 이루어지므로 호이스팅 되지 않는다.

profile
빌드업 막 시작하는 개발자

0개의 댓글