Scope chain

스코프 체인 탐색 흐름

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

단계찾는 위치결과주의점
Local현재 함수나 블록 스코프가장 가까운 이름 사용바깥 변수와 같은 이름 shadowing
Outer선언 당시의 바깥 스코프lexical scope 기준 탐색호출 위치와 선언 위치 혼동
Global전역 객체와 모듈 범위마지막 후보전역 이름 충돌
Not found모든 범위에서 실패ReferenceError오타와 선언 누락
Closure바깥 변수를 함수가 기억상태 보존 가능예상보다 오래 살아 있는 참조

스코프 체인은 함수가 어디서 호출됐는가보다 어디서 선언됐는가를 기준으로 이름을 찾는다.