Notice
Recent Posts
Recent Comments
Link
ORANGEE
JavaScript에서 const, let, var 차이점 완전 정리 본문
const
, let
, var
... 도대체 뭐가 다른 걸까?
🧩 한눈에 보는 차이표
키워드 | 재할당 가능? | 재선언 가능? | 스코프 | 호이스팅 |
---|---|---|---|---|
const | ❌ 불가능 | ❌ 불가능 | 블록 스코프 | 호이스팅은 되지만 초기화 전 사용 불가 |
let | ✅ 가능 | ❌ 불가능 | 블록 스코프 | 호이스팅은 되지만 초기화 전 사용 불가 |
var | ✅ 가능 | ✅ 가능 | 함수 스코프 | 호이스팅되며, 초기화 전에도 undefined로 접근 가능 |
📌 간단 예제
// const
const a = 10;
a = 20; // ❌ TypeError: Assignment to constant variable
// let
let b = 10;
b = 20; // ✅ OK
// var
var c = 10;
c = 30; // ✅ OK
var c = 50; // ✅ 재선언도 가능
🔍 스코프 차이
if (true) {
var x = 1;
let y = 2;
const z = 3;
}
console.log(x); // ✅ 1
console.log(y); // ❌ ReferenceError
console.log(z); // ❌ ReferenceError
var
는 함수 스코프라서 if문 바깥에서도 접근됨.let
과const
는 블록 스코프라 해당 블록 밖에선 못 씀.
🚫 호이스팅
console.log(a); // undefined
var a = 10;
console.log(b); // ❌ ReferenceError
let b = 20;
var
는 선언과 초기화가 동시에 끌어올려짐let
과const
는 선언은 호이스팅되지만 초기화 전엔 사용 불가 (Temporal Dead Zone)
✅ 언제 뭘 써야 할까?
- 값을 바꾸지 않을 변수는 무조건 `const`
- 바뀌는 값은 `let`
- `var`는 이제 쓰지 않는 것이 표준 (옛날 코드 호환용만 예외)
- 바뀌는 값은 `let`
- `var`는 이제 쓰지 않는 것이 표준 (옛날 코드 호환용만 예외)
📌 요약
- `const`는 불변, `let`은 가변, `var`는 이제 과거의 유물
- 안전하고 예측 가능한 코드를 위해선 `const` & `let` 중심으로 쓰자!
- 안전하고 예측 가능한 코드를 위해선 `const` & `let` 중심으로 쓰자!
'CODE' 카테고리의 다른 글
자바스크립트 호이스팅(Hoisting) 완전 정리 (0) | 2025.04.03 |
---|---|
var, let, const 차이점 완벽 정리 (0) | 2025.04.03 |
undefined vs null - 자바스크립트에서의 차이점 (0) | 2025.04.03 |
자바스크립트 이벤트 루프 완전 정복 (0) | 2025.04.03 |
자바스크립트 이벤트 버블링과 캡처링 이해하기 (0) | 2025.04.03 |