Scope란 '범위' 입니다. 즉, "변수에 접근할 수 있는 범위" 라고 쉽게 이해하시면 됩니다.
Scope엔 전역 스코프(Global Scope), 지역 스코프(Local Scope) 두 가지 타입이 있습니다.
- 전역 스코프 ( Global Scope )
ㄴ 어느 곳에서든 해당 변수에 접근할 수 있는 지역
- 지역 스코프 ( Local Scope )
ㄴ 해당 지역에서만 접근 할 수 있는 지역
let scope = "전역"; // 전역 스코프
function print() { // 지역(함수) 스코프
let scope = "지역";
console.log(scope); // 지역
}
print(); // 지역
console.log(scope); // 전역
let scope = "전역";
function print(){
console.log(scope); // 전역
}
print(); // 전역
함수 안에서 scope 변수를 선언하지 않았다면 Scope Chain 현상으로 인해 전역변수 scope 값이 나옵니다.
해당 스코프에서 변수를 찾지 못하면 Scope Chain으로 인해 해당 변수를 찾게 됩니다.