렉시컬 스코프(Lexical Scope)
- 렉시컬 스코프는 렉싱 단계에 정의되는 스코프이며, 코드를 짤 때 함수를 어디에 선언하는가에 따라 상위 스코프가 결정된다.
- 자바스크립트를 포함한 대부분의 언어는 렉시컬 스코프를 따르며, 이를 정적 스코프(Static Scope) 라고 부르기도 한다.
var x = 1;
function foo() {
var x = 5;
bar();
}
function bar(){
console.log(x);
}
foo(); // 1출력
bar(); // 1출력
렉시컬 스코프의 반대는? 동적스코프
- 함수가 호출되는 시점에 스코프가 결정된다.
- 함수가 어디서 정의되었느냐가 아니라, 어디서 호출되었는지에 따라 상위 스코프가 결정된다.