13장. 스코프란?


식별자가 자신을 참조할 수 있는 유효한 범위

스코프 체인

스코프가 함수의 중첩에 의해 계층적 구조를 갖는 것

자바스크립트 엔진은 변수를 참조할 때 스코프 체인을 통해 변수를 참조하는 코드의 스코프에서 시작하여 상위 스코프 방향으로 이동하여 선언된 변수를 검색한다. (= 식별자를 검색하는 규칙)

함수 레벨 스코프

  • var는 오로지 함수의 코드블록만을 지역 스코프로 인정한다. (if, for 등 다른 코드블럭 불가)

렉시컬 스코프

함수를 어디에서 호출했는지가 아닌 어디서 정의했는지에 따라 상위 스코프를 결정하는 방식

함수의 상위 스코프는 함수를 정의할 때 정적으로 결정된다.

var x = 1;

function foo() {
  var x = 10;
  bar();
}

function bar() {
  console.log(x);
}

foo(); // 1
bar(); // 1
Last Updated: