JavaScript 변수: var, let, const의 차이와 사용법

JavaScript에는 변수를 선언할 때 사용할 수 있는 주요 키워드로 var, let, 그리고 const가 있습니다. 각 키워드는 스코프(scope), 호이스팅(hoisting), 재할당 가능 여부 등에서 차이를 보이며, 적합한 상황에 따라 사용하는 것이 중요합니다.

1. var

특징

  • 함수 스코프: var로 선언된 변수는 함수 내부에서만 유효하며, 블록 스코프를 지원하지 않습니다.
  • 호이스팅: 변수 선언이 코드의 최상단으로 끌어올려지는 것처럼 동작합니다. 그러나 초기화는 선언된 위치에서 이루어집니다.

예시

function example() {
  if (true) {
    var x = 10;
  }
  console.log(x); // 10 (블록 밖에서도 접근 가능)
}
example();

사용 권장 여부

현대적인 JavaScript 코드에서는 var 사용을 지양합니다. 대신 letconst를 사용하여 보다 명확하고 안전한 코드 작성이 가능합니다.


2. let

특징

  • 블록 스코프: { }로 묶인 블록 내에서만 유효하며, 블록을 벗어나면 변수에 접근할 수 없습니다.
  • 호이스팅: 선언은 호이스팅되지만 초기화되지 않아 선언 전에 접근하면 오류가 발생합니다.

예시

if (true) {
  let y = 20;
  console.log(y); // 20 (블록 내부에서만 유효)
}
// console.log(y); // ReferenceError: y is not defined

사용 권장 여부

let은 재할당이 필요한 변수에 적합하며, 블록 스코프 덕분에 코드의 가독성과 안전성을 높여줍니다.


3. const

특징

  • 블록 스코프: const{ }로 묶인 블록 내에서만 유효합니다.
  • 재할당 불가: 선언된 변수는 재할당할 수 없습니다. 하지만 객체나 배열의 속성은 변경할 수 있습니다.
  • 호이스팅: 선언은 호이스팅되지만 초기화되지 않아 선언 전에 접근하면 오류가 발생합니다.

예시

const z = 30;
// z = 40; // TypeError: Assignment to constant variable.

const obj = { a: 1 };
obj.a = 2; // 가능 (객체 내부 속성 변경)
console.log(obj.a); // 2

사용 권장 여부

const는 재할당이 필요 없는 상수나 객체를 선언할 때 사용됩니다. 기본적으로 변수를 선언할 때는 const를 우선 사용하고, 필요 시 let으로 대체하는 것이 좋습니다.


요약

키워드 스코프 재할당 호이스팅 사용 사례
var 함수 스코프 가능 선언 후 초기화 구식 코드에서 사용되며 지양
let 블록 스코프 가능 선언 후 초기화 재할당이 필요한 경우 사용
const 블록 스코프 불가능 선언 후 초기화 재할당이 필요 없는 경우 사용

var는 과거 코드에서 주로 사용되었지만, 현재는 letconst가 ES6 이후로 표준이 되었으며 더 안전하고 명확한 코드 작성을 돕습니다. 기본적으로는 const를 사용하고, 값의 재할당이 필요할 때만 let을 사용하는 것을 권장합니다.

Categories:

Updated:

Leave a comment