TIL.231017 LexicalEnvironment

안은지·2023년 10월 17일
0
post-custom-banner
  • LE는 다음 2가지 정보를 가지고 있다.
    ✓ record(=environmentRecord) ← 이 record의 수집과정이 hoisting
    ✓ outer(=outerEnvironmentReference)

    예시

    console.log(sum(1, 2));
    console.log(multiply(3, 4));
    function sum (a, b) { // 함수 선언문 sum
    return a + b;
    }
    var multiply = function (a, b) { // 함수 표현식 multiply
    return a + b;
    }
    **//함수 선언문은 전체를 hoisting**
    function sum (a, b) { // 함수 선언문 sum
    return a + b;
    }
    // 변수는 선언부만 hoisting
    var multiply;
    console.log(sum(1, 2));
    console.log(multiply(3, 4));
    multiply = function (a, b) { // 변수의 할당부는 원래 자리
    return a + b;
    };
var a = 1; //전역영역
var outer = function() {
var inner = function() {
console.log(a); // 이 값은 뭐가 나올지 예상해보세요! 이유는 뭐죠? scope 관점에서!
var a = 3;
};
inner();
console.log(a); // 이 값은 또 뭐가 나올까요? 이유는요? scope 관점에서!
};
outer();
console.log(a); // 이 값은 뭐가 나올까요? 마찬가지로 이유도!

post-custom-banner

0개의 댓글