var, let, const 차이

oversleep·2025년 2월 3일
post-thumbnail

1. var

  • 가장 오래된 변수 선언 방식
  • 재선언/재할당 모두 가능
  • 함수 스코프를 가짐
var name = "John";
var name = "Mike";  // 재선언 가능
name = "Tom";       // 재할당 가능

function example() {
    var x = 1;
    if(true) {
        var x = 2;  // 같은 x를 가리킴 (함수 스코프)
    }
    console.log(x); // 2가 출력됨
}

2. let

  • 재선언 불가능, 재할당 가능
  • 블록 스코프를 가짐
let age = 20;
// let age = 30;  // 에러! 재선언 불가능
age = 30;         // OK! 재할당 가능

function example() {
    let x = 1;
    if(true) {
        let x = 2;  // 다른 x (블록 스코프)
    }
    console.log(x); // 1이 출력됨
}

3. const

  • 재선언/재할당 모두 불가능
  • 블록 스코프를 가짐
  • 상수 선언에 사용
const PI = 3.14;
// const PI = 3.141592;  // 에러! 재선언 불가능
// PI = 3.141592;        // 에러! 재할당 불가능

// 단, 객체의 내부 속성은 변경 가능
const person = {name: "John"};
person.name = "Mike";  // OK!
// person = {name: "Tom"};  // 에러!

실제 사용 시 권장사항:

  1. const: 기본적으로 사용 (변경이 필요없는 변수)
  2. let: 재할당이 필요한 경우에만 사용
  3. var: 거의 사용하지 않음 (레거시 코드에서만 볼 수 있음)
profile
궁금한 것, 했던 것, 시행착오 그리고 기억하고 싶은 것들을 기록합니다.

0개의 댓글