[javascript] 변수의 스코프와 라이프사이클

JavaScript에서 변수의 스코프와 라이프사이클은 프로그램의 동작을 이해하는 데 중요한 개념입니다. 이 블로그에서는 JavaScript에서 변수의 스코프와 라이프사이클을 다루고, 실제 코드 예제를 통해 설명하겠습니다.

스코프(Scope)란?

스코프란 변수가 유효한 범위를 나타냅니다. JavaScript에서는 전역 스코프(global scope)와 지역 스코프(local scope)로 나뉩니다. 변수가 선언된 위치에 따라 스코프가 결정됩니다.

전역 스코프(Global Scope)

전역 스코프에서 선언된 변수는 프로그램 전체에서 접근 가능합니다. 이러한 변수는 어디서든 사용할 수 있으며, 전역 변수(global variable)라고 합니다.

let globalVar = 10;

function doSomething() {
  console.log(globalVar);
}

doSomething(); // 10

지역 스코프(Local Scope)

지역 스코프에서 선언된 변수는 해당 지역 내에서만 접근 가능합니다. 함수 내부에서 선언된 변수는 그 함수의 지역 스코프에 속하며, 블록 내에서 선언된 변수는 그 블록의 지역 스코프에 속합니다.

function doSomething() {
  let localVar = 20;
  console.log(localVar);
}

doSomething(); // 20
console.log(localVar); // ReferenceError: localVar is not defined

라이프사이클(Lifecycle)이란?

라이프사이클은 변수가 메모리에서 생성되고 소멸되기까지의 과정을 나타냅니다. JavaScript에서 변수의 라이프사이클은 변수의 스코프와 밀접한 관련이 있습니다.

전역 변수의 라이프사이클

전역 변수는 프로그램이 실행될 때 메모리에 할당되고, 프로그램이 종료될 때 메모리에서 해제됩니다.

지역 변수의 라이프사이클

지역 변수는 해당 지역 스코프가 생성될 때 메모리에 할당되고, 그 스코프가 종료될 때 메모리에서 해제됩니다.

function doSomething() {
  let localVar = 20; // localVar의 라이프사이클이 함수 doSomething의 실행과 함께 시작되고, 함수 실행이 끝나면 localVar는 메모리에서 해제된다.
  console.log(localVar);
}

결론

변수의 스코프와 라이프사이클을 이해하면 변수의 사용과 메모리 관리에 대한 효율적인 프로그래밍이 가능해집니다. 이러한 개념을 활용하여 JavaScript 프로그램을 더욱 효과적으로 작성할 수 있습니다.

참고 문헌: