본문 바로가기

카테고리 없음

책 코어 자바스크립트 - 호이스팅

environmentRecord에는 현재 실행될 컨텍스트의 대상 코드내에 어떤 식별자들이 있는지에만 관심 있고 각 식별자에 어떤값이 할당될 것인지는 관심이 없다. 식별자 a의 인자에 3을 넣든 5를 넣든 결과는 똑같다.

 

function a() {
    var x;
    var x;
    var x;

    x = 1;
    console.log(x);
    console.log(x);
    x = 2;
    console.log(x);
}

a(3);

// 답은 1,1,2가 나온다

 

 

 

변수는 선언부만 끌어올린다(호이스팅) 여기서는 변수 b가 밑에서 함수 선언을 한 b를 끌어올린다.

 

function a() {
    console.log(b);
    var b = 'bbb';
    console.log(b);
    function b() {} 
    console.log(b);
}

a();

// 결과는 b함수, 'bbb', 'bbb'가 나온다. 이때 b함수는 선언과 동시에 변수에b 의해 호이스팅을 당해 끌어올려진다.