Scope는 직역하면 "범위"라는 뜻이다.
JavaScript 에서 Scope(스코프)는 변수에 접근할 수 있는 범위를 말한다.
식별자(변수)를 찾기위한 규칙이라고도 한다.
let x = 'global';
function solution () {
let x = 'function scope';
console.log(x);
}
위 예제에서 x가 두번 선언되었는데, 전역에 선언된 변수 x는 어디에든 참조할 수 있다. 하지만 함수 solution 내에서 선언된 변수 x는 함수 solution 내부에서만 참조할 수 있고, 외부에서는 참조할 수 없다. 이러한 규칙을 스코프 라고 한다.
Global scope
코드 어디에서든지 참조 가능
Local scope / Function-level scope
함수 코드 블록이 만든 스코프로, 함수 자신과 하위 함수에서만 참조할 수 있다.
모든 변수는 스코프를 갖는다. 변수 관점에서 스코프를 구분하면 다음과 같이 나눌 수 있다.
Global variable
전역에서 선언된 변수이며 어디에든 참조할 수 있다
Local variable
지역(함수) 내에서 선언된 변수이며 그 지역과 그 지역의 하부 지역에서만 참조할 수 있다.
참조