자바스크립트 변수의 생명주기

자바스크립트에서 변수의 생명주기란 변수가 생성되고 사용되는 동안 유효한 범위를 의미합니다. 변수의 생명주기를 이해하면 변수를 올바르게 관리하고 메모리를 효율적으로 사용할 수 있습니다. 이번 포스트에서는 자바스크립트 변수의 생명주기에 대해 알아보겠습니다.

변수의 선언과 초기화

변수를 사용하기 전에 먼저 선언해야 합니다. 변수의 선언은 var, let, const 키워드를 사용하여 할 수 있습니다. 선언된 변수는 값을 할당하기 전까지는 undefined로 초기화됩니다.

var x; // 변수 x를 선언
console.log(x); // undefined

let y; // 변수 y를 선언
console.log(y); // undefined

const z; // 변수 z를 선언 (const 변수는 선언과 동시에 초기화해야 함)
// SyntaxError: Missing initializer in const declaration 

변수의 스코프

변수의 스코프는 변수가 유효한 범위를 정의합니다. 자바스크립트에서는 전역 스코프지역 스코프 두 가지가 있습니다. 전역 변수는 스크립트 전체에서 접근 가능한 변수이고, 지역 변수는 특정 함수나 블록 내에서만 접근 가능한 변수입니다.

var globalVariable = 'Global'; // 전역 변수

function myFunction() {
  var localVariable = 'Local'; // 지역 변수
  console.log(globalVariable); // Global
  console.log(localVariable); // Local
}

console.log(globalVariable); // Global
console.log(localVariable); // ReferenceError: localVariable is not defined

변수의 수명

변수의 수명은 변수가 생성되고 소멸되는 시점입니다. 자바스크립트에서 변수는 특정한 경우에만 메모리에서 삭제됩니다. 대표적으로 함수 실행이 종료되면 해당 함수 내에서 선언된 변수들은 소멸됩니다. 또는 전역 스코프에서 생성된 변수는 프로그램이 종료될 때까지 유지됩니다.

function myFunction() {
  var localVar = 'Local';
  console.log(localVar); // Local
}

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

변수의 가비지 수집

자바스크립트는 가비지 수집(Garbage Collection)을 통해 더 이상 사용되지 않는 변수와 객체를 자동으로 메모리에서 제거합니다. 가비지 수집은 브라우저의 메모리 관리를 도와 효율적인 자원 사용을 지원합니다.

var x = 'Hello';
x = null; // 변수 x에 null 할당

// 가비지 수집을 통해 메모리에서 제거됨

결론

변수의 생명주기에 대한 이해는 자바스크립트 프로그래밍에서 중요한 개념입니다. 변수의 선언, 스코프, 수명, 가비지 수집 등을 고려하여 변수를 효율적으로 관리하고 메모리를 효율적으로 사용할 수 있습니다. 프로젝트에서 변수 관리에 신경써서 안정성과 성능에 긍정적인 영향을 주도록 노력해야 합니다.