[javascript] 전역 변수와 지역 변수의 스코프 체인 동작 방식

JavaScript에서 변수의 스코프는 전역 변수와 지역 변수로 구분됩니다. 이 두 가지 변수의 스코프 체인 동작 방식을 이해하기 위해 먼저 스코프의 개념을 알아보겠습니다.

스코프란 무엇인가요?

스코프는 변수의 유효 범위를 의미합니다. 간단히 말해, 어디서 변수를 사용할 수 있는지를 결정하는 규칙입니다.

전역 스코프(Global Scope)는 코드의 어디에서든 접근 가능한 범위를 말합니다. 전역 변수는 전역 스코프에서 선언되어 어디서든 사용할 수 있습니다.

지역 스코프(Local Scope)는 함수나 블록 안에서만 접근 가능한 범위를 말합니다. 지역 변수는 해당 스코프 내에서만 사용할 수 있습니다.

전역 변수의 스코프 체인 동작 방식

전역 변수는 전역 스코프에서 선언되어 어디서든 사용할 수 있습니다. 전역 변수는 스코프 체인 상에서 가장 바깥에 있으며, 어떤 함수 내에서도 직접 접근이 가능합니다.

let globalVariable = '전역 변수';

function foo() {
    console.log(globalVariable); // 출력 결과: '전역 변수'
}

foo();

위 예제에서 foo 함수 내에서 globalVariable 변수에 접근할 수 있습니다. 그 이유는 스코프 체인을 통해 가장 바깥에 위치한 전역 스코프로 접근할 수 있기 때문입니다.

지역 변수의 스코프 체인 동작 방식

지역 변수는 함수나 블록 내에서 선언되어 해당 스코프 내에서만 사용할 수 있습니다. 스코프 체인은 지역 변수의 접근을 결정하는 중요한 개념입니다.

function foo() {
    let localVariable = '지역 변수';

    function bar() {
        console.log(localVariable); // 출력 결과: '지역 변수'
    }

    bar();
}

foo();

위 예제에서 bar 함수 내에서 localVariable 변수에 접근할 수 있습니다. 이는 스코프 체인을 통해 가장 가까운 함수 스코프에서 해당 변수를 찾을 수 있기 때문입니다.

스코프 체인의 동작 방식

스코프 체인은 변수의 스코프를 결정하는 동작을 설명합니다. 변수를 사용할 때, JavaScript는 현재 스코프에서 변수를 찾고 있습니다.

만약 변수를 찾지 못하면, JavaScript는 스코프 체인을 따라 전역 스코프까지 올라가며 변수를 찾습니다. 이 과정을 통해 변수를 찾을 때까지 계속해서 스코프 체인을 따라 올라갑니다.

스코프 체인의 동작 방식은 변수를 찾는 순서와 관련이 있습니다. 가장 근접한 스코프부터 차례로 변수를 찾기 때문에 가장 가까운 스코프에 있는 변수가 우선적으로 사용됩니다.

참고 자료