Scope Chain

스코프 체인 탐색 흐름

자바스크립트는 현재 스코프에서 식별자를 찾고, 없으면 바깥 렉시컬 스코프로 차례대로 올라간다.

변수 이름을 찾는 순서

lexical lookup

현재 스코프

블록이나 함수 내부에 선언된 이름을 먼저 확인한다.

외부 스코프

선언 위치 기준의 바깥 환경으로 이동한다.

전역 스코프

마지막으로 전역 객체와 전역 선언을 확인한다.

찾기 실패

어디에도 없으면 참조 오류가 발생한다.

namelocalouterglobalerror
변수 이름을 찾는 순서

스코프는 호출 위치가 아니라 작성된 위치를 기준으로 이어진다. 클로저도 이 체인을 붙잡는 구조로 이해하면 쉽다.