자바스크립트 변수의 스코프 체인

자바스크립트는 함수 스코프를 갖는 언어로, 변수의 유효 범위는 함수 내에서 결정됩니다. 하지만 자바스크립트에서는 스코프 체인을 통해 변수의 유효 범위를 넘어서 접근할 수 있는 기능을 제공합니다.

스코프란?

스코프는 변수가 접근 가능한 범위를 말합니다. 변수가 선언된 위치에 따라 그 변수의 스코프가 결정됩니다. 스코프는 중첩된 함수 구조에서 범위를 가질 수 있으며, 내부 함수에서는 외부 함수의 변수에 접근할 수 있습니다.

스코프 체인이란?

스코프 체인은 변수에 접근할 때, 현재 스코프에서 찾지 못하면 상위(외부) 스코프로 이동하여 변수를 찾는 과정을 말합니다. 이때 상위 스코프로 이동하는 과정을 스코프 체인을 따라 올라간다고 표현합니다.

스코프 체인의 동작

스코프 체인은 변수가 선언된 위치와 관련이 있습니다. 변수를 참조하면 자바스크립트 엔진은 현재 스코프에서 해당 변수가 있는지 확인합니다. 만약 변수를 찾지 못하면 한 단계씩 상위 스코프로 이동하여 변수를 찾습니다. 이 과정은 전역 스코프까지 계속해서 이루어지며, 변수를 찾거나 전역 스코프까지 도달할 때까지 반복됩니다.

스코프 체인 예제

function outer() {
  var x = "outer";

  function inner() {
    var y = "inner";
    console.log(x + " " + y);
  }

  inner();
}

outer();

위 예제에서 inner 함수 내부에서 console.log 문을 통해 변수 xy를 참조하고 있습니다. 이때, inner 함수의 스코프 체인은 다음과 같습니다.

  1. inner 함수 스코프
  2. outer 함수 스코프
  3. 전역 스코프

따라서, inner 함수에서 xy를 참조할 수 있습니다. inner 함수가 xy를 찾을 때, 현재 스코프부터 시작하여 상위 스코프로 이동하면서 변수를 찾게 됩니다.

결론

스코프 체인은 자바스크립트에서 변수의 범위를 결정하는 중요한 개념입니다. 스코프 체인을 이해하고 활용하여 변수를 올바르게 관리하는 것은 효율적인 자바스크립트 코드 작성에 도움이 됩니다.