우리말로 번역하면 ‘범위’라는 뜻을 가지고 있다.
js에서 Scope란 ‘변수에 접근할 수 있는 범위’라고 할 수 있다.
자바스크립트에선 global(전역)변수와 local(지역)변수 2가지 타입이 있다.
전역 변수는 말 그대로 전역에 선언되어있어 어느 곳에서든지 해당 변수에 접근할 수 있다.
지역 변수는 해당 지역에서만 접근할 수 있어 지역을 벗어난 곳에선 접근할 수 없다.
아래 간단한 코드 예시를 보자.
<script>
let i = 10;
document.write(i); // 3
function myFunc() {
let i = 20;
document.write('<br>', i);
}
myFunc();
</script>
먼저 코드의 맨 위에서 선언된 i 변수는 전역 범위에서 선언되었고, 전역 변수 i는 어디서든지 접근할 수 있는 전역 변수이다.
따라서 document.write(i)
의 코드값은 10이된다.
myFunc
함수 내에서 선언된 i 변수는 지역 범위에서 선언이 된
즉, 지역 변수이다.
myFunc
함수 내에서 i는 20이라는 값을 선언했기 때문에 20이 출력된다.
같은 i라는 변수명을 사용했지만 범위(Scope)에 따라 결과 값이 달라지는걸 확인할 수 있다.