Scope

Kingmo·2022년 3월 18일
0

1. Scope(스코프)

자바스크립트의 기본이라고 할 수 있는 변수에는 유효 범위가 있다.
변수와 같은 식별자에 대한 유효 범위를 스코프라고 한다.
이런 유효범위는 크게 전역공간과 지역공간으로 두 가지로 나뉘며,
이에따라 변수 또한 전역변수와 지역변수로 나뉜다.

전역 변수
스크립트 영역 어디에도 힘을 발휘 할 수 있는 변수

지역 변수
정해진 영역에서만 힘을 발휘하는 변수
보통 블록{} 안이나, 함수 안에서만 변수에 접근 할 수 있다.

2. Scope chain(스코프체인)

식별자의 유효범위, 즉 스코프를 안에서부터 밖으로 검색해 나가는 것을 스코프 체인이라고 한다.

스코프 체인의 예제.

var a =1;  //전역공간 변수 
var outer = function () {
    var inner = function () {
        console.log(a)   ---------> //undefined
        var a =3  //지역변수 
    }
    inner()
    console.log(a)   ----------> //결과 1
}
outer()
console.log(a)   -----------> //결과 1

컨텍스트는 해당 코드의 외부환경정보를 수집해올 때 스코프 체인이 발생한다.

여기서 console.log(a)는 모두 1을 출력한다.
위 코드의 작동과정을 살펴보자.
먼저 outer()가 외부환경의 정보를 수집하는 과정에서 전역공간의 변수 a를 수집한다.
다음으로 outer() 내부의 inner()가 작동하면서
outer()의 Enviroment를 참조해 외부환경의 정보를 수집한다.
따라서 전역공간의 var a = 1를 참조해
1을 출력하게 된다.
이처럼 바로위 식별자의 Enviroment를 참조하는 것이 스코프 체인이다.

함수가 실행될 때 먼저 외부환경의 정보를 수집한다음 실행된다는 것을 기억하자!

profile
Developer

0개의 댓글