본문 바로가기
자바스크립트

자바스크립트 변수 선언 (var, let, const)

by 개발하는 늑대 2025. 6. 9.
728x90

 

자바스크립트 변수 선언에 관하여

자바스크립트에서 변수 선언 방식에는 var, let, const의 세 가지 방법이 있습니다. 이 글에서는 각 선언 방식의 특징과 사용법, 그리고 차이점에 대해 자세히 알아보겠습니다.


1. var

var는 자바스크립트에서 초기부터 사용된 변수 선언 방식으로, 함수 스코프를 따릅니다. 그러나 최근에는 사용 빈도가 크게 줄어들었습니다.

  • 스코프(Scope): 함수 스코프 (선언된 함수에서 어디든 접근 가능)
  • 호이스팅(Hoisting): 변수 선언이 스코프 최상단으로 끌어올려지지만 값은 초기화되지 않음
  • 재선언 가능: 같은 스코프 내에서 동일한 이름의 변수 재선언 가능
function example() {
    if (true) {
        var x = 10;
    }
    console.log(x); // 10 (블록 밖에서도 접근 가능)
}
example();

2. let

let은 ES6에서 도입된 변수 선언 방식으로, 블록 스코프를 준수하며 현대 자바스크립트에서 가장 자주 사용되는 선언 방식입니다.

  • 스코프(Scope): 블록 스코프 (해당 블록 내에서만 접근 가능)
  • 호이스팅(Hoisting): 선언 전에는 "Temporal Dead Zone" 상태
  • 재선언 불가: 스코프 내에서 동일 이름 변수 재선언 불가능
function example() {
    if (true) {
        let y = 20;
        console.log(y); // 20
    }
    // console.log(y); // ReferenceError: y is not defined
}
example();
728x90

3. const

const는 상수를 선언할 때 사용하는 키워드로, 재할당이 불가하며 선언 시 반드시 초기값을 설정해야 합니다.

  • 스코프(Scope): 블록 스코프 (let과 동일)
  • 호이스팅(Hoisting): 선언 전에는 "Temporal Dead Zone" 상태
  • 재선언 불가: 재할당 및 재선언 불가
const z = 30;
console.log(z); // 30
// z = 40; // TypeError: Assignment to constant variable.

4. var, let, const 비교

특성 var let const
스코프 함수 스코프 블록 스코프 블록 스코프
재선언 가능 불가 불가
재할당 가능 가능 불가

요약하자면, const를 기본으로 사용하고, 변경이 필요한 경우에만 let을 사용하세요. var는 새로운 코드에서는 가급적 사용을 피하는 것이 좋습니다.

더 많은 내용은 여기에 있습니다 ^^

728x90