IT/IT 인터넷

[자바스크립트] JavaScript에서 var, let, const 차이 및 가이드

print() 2025. 2. 21. 01:13
300x250

 

JavaScript에서 변수를 선언할 때 var, let, const 세 가지 키워드를 사용할 수 있습니다. 

각각의 차이를 이해하고 적절하게 사용하는 것이 코드의 유지보수성과 안정성을 높이는 데 중요합니다.

이 글에서는 언제 var, let, const를 사용해야 하는지 구체적으로 설명하겠습니다.

 

1. 항상 변수를 선언하세요


JavaScript에서는 변수를 선언하지 않고 사용할 수도 있지만, 이는 예상치 못한 문제를 초래할 수 있습니다. 

 

따라서 항상 var, let, const 중 하나를 사용하여 변수를 선언하는 것이 좋습니다.

잘못된 예:

x = 10; // 변수 선언 없이 사용 (권장하지 않음)

 

올바른 예:

let x = 10; // 변수를 선언한 후 사용

 

 

2. 값이 변경되지 않는 경우 const를 사용하세요

 

변수의 값이 한 번 설정된 이후 변경될 필요가 없는 경우 const를 사용해야 합니다. 

 

이렇게 하면 코드의 가독성이 높아지고, 실수로 값을 변경하는 것을 방지할 수 있습니다.

 

const PI = 3.1415926535;
const MAX_USERS = 100;

 

const를 사용하면 실수로 값을 재할당하려고 할 때 오류가 발생합니다.

 

const greeting = "Hello";
greeting = "Hi"; // TypeError: Assignment to constant variable.

 

3. 배열 및 객체의 유형을 변경하지 않을 경우 const를 사용하세요

 

const를 사용하면 변수 자체를 재할당할 수 없지만, 객체나 배열 내부의 값을 변경하는 것은 가능합니다. 

 

따라서 객체나 배열을 선언할 때도 const를 사용하는 것이 일반적입니다.

 

const numbers = [1, 2, 3];
numbers.push(4); // 정상적으로 동작
console.log(numbers); // [1, 2, 3, 4]

 

하지만 전체 배열을 재할당하는 것은 불가능합니다.

 

numbers = [5, 6, 7]; // TypeError: Assignment to constant variable.

 

객체도 마찬가지입니다.

 

const user = { name: "John", age: 25 };
user.age = 26; // 정상적으로 변경됨

user = { name: "Doe", age: 30 }; // TypeError: Assignment to constant variable.

 

4. let은 const를 사용할 수 없는 경우에만 사용하세요

변수의 값이 변경될 가능성이 있다면 let을 사용합니다. 

 

예를 들어, 반복문이나 조건문에서 값이 변경될 필요가 있는 경우 let이 적합합니다.

 

let count = 0;
count += 1;
console.log(count); // 1

 

또한, 블록 스코프를 가지므로 특정 블록 내에서만 변수를 유지하고 싶을 때 유용합니다.

 

if (true) {
    let message = "Hello";
    console.log(message); // 정상 출력
}
console.log(message); // ReferenceError: message is not defined

 

실무에서는 지역 변수 혹은 로컬 변수라고 부릅니다.

 

반대로 어디서나 불러올 수 있는 변수는 글로벌 변수라고 합니다.

 

5. var는 특별한 경우를 제외하고 사용하지 마세요

 

var는 과거 JavaScript에서 변수를 선언하는 유일한 방법이었지만, 현재는 let과 const를 사용하는 것이 권장됩니다. 

 

var의 주요 문제는 함수 스코프를 가지며, 블록 스코프를 따르지 않는다는 점입니다.

 

그러나 실무에서는 대부분 var를 사용합니다. ㅋㅋ

 

if (true) {
    var test = "Hello";
}
console.log(test); // "Hello" (블록 외부에서도 접근 가능!)

 

 

이러한 특성 때문에 예상치 못한 변수 재정의 및 버그가 발생할 수 있습니다.

var를 사용해야 하는 유일한 경우는 구형 브라우저(IE 11 이하)를 지원해야 하는 경우뿐입니다. 

 

그렇지 않다면 let과 const를 사용하세요.

 

정리


 1. 항상 변수를 선언해야 함 → 선언 없이 사용하면 오류 발생 가능
 2. 값이 변경되지 않을 경우 const 사용 → 실수로 값 변경을 방지
 3. 배열 및 객체를 재할당할 필요가 없는 경우 const 사용 → 내부 값 변경 가능
 4. 값이 변경될 가능성이 있는 경우 let 사용 → 블록 스코프 유지
 5. var는 특별한 이유가 없는 한 사용하지 않음 → 함수 스코프 문제 발생 가능

적절한 변수 선언 방법을 선택하면 코드의 가독성과 유지보수성이 향상됩니다. 

 

최신 JavaScript 환경에서는 const를 기본으로 사용하고, 필요한 경우에만 let을 선택하는 것이 가장 좋은 방법입니다.

다들 열공하세요~ 끝.

300x250