코드는 전역(global) 코드와 지역(local) 코드로 구분할 수 있음
변수는 자신이 선언된 위치(전역/지역)에 의해 스코프가 결정됨
함수는 전역뿐만 아니라 함수 몸체 내부에서도 정의할 수 있음
함수가 중첩 가능하므로, 함수의 지역 스코프도 중첩 가능함
변수를 참조할 때 JavaScript 엔진은 스코프 체인을 통해 변수를 참조하는 코드의 스코프에서 시작하여 상위 스코프 방향으로 이동하며 선언된 변수를 검색함
함수를 호출할 때 JavaScript 엔진은 스코프 체인을 통해 함수를 가리키는 식별자를 검색함
동적 스코프(dynamic scope)
렉시컬 스코프(lexical scope) / 정적 스코프(static scope)
JavaScript는 렉시컬 스코프를 따름