20220830 TIL

엄강우·2022년 8월 30일
0

TIL

목록 보기
42/43

호이스팅

호이스팅이 일어나는 이유가 뭘까?

그 이유를 일단 얘기하자면 컴파일러는 컴파일레이션 단계 그리고 실행단계를 거치기 때문이다.

예를 보면

a = 2
var a
console.log(a)

다음과 같은 js파일이 있으면 모두가 알다시피 log의 결과로 2가 출력될 것이다.

컴파일레이션 단계에서 var a가 실행되고

실행 단계에서 a=2; console.log(a)구문이 실행되는 것이다.

호이스팅이 되는 것들에는 무엇이 있을까?

  1. var변수

  2. 함수 선언식

    foo()                  // 가능
    function foo() {}
    
    bar()                  // TypeError : 함수 표현식은 안됨 
    var bar = () => {}     // TypeError가 나는 이유는 var bar가 호이스팅 되어서 undefined인데 함수로 실행 하려고 해서 그렇다.
profile
안녕하세요 프론트엔드 개발자를 꿈꾸는 엄강우입니다.

0개의 댓글