728x90
✅ let 과 const 기본 개념
1️⃣ let
- 재할당 가능한 변수를 선언할 때 사용
- 블록 스코프(중괄호 { } 안에서만 유효)
- let이전에 사용한 var과 달리 호이스팅 시 undefined 초기화 없이 TDZ(Temporal Dead Zone)적용
let kg = 80;
kg = 72; // ✅ kg는 재할당 가능
console.log(`he is ${kg}kg`); // ✅ he is 72kg
2️⃣ const
- 재할당 불가능한 변수를 선언할 때 사용
- 블록 스코프 동일 적용
- 그러나 **값이 불변(immutable)""이라는 뜻은 ❌ -> 객체나 배열 내부 값은 변경 가능
const nickname = "paul smith";
// nickname = "Harry Potter"; // ❌ 재할당 불가
const user = { hobby: "reading" };
user.hobby = "gaming"; // ✅ 객체 속성은 변경 가능
console.log(` ${nickname} is hobby: ${user.hobby}`); // paul smith is hobby: gaming
✅ var과의 차이점
| 특징 | var | let | const |
| 스코프 | 함수 스코프 | 블록 스코프 | 블록 스코프 |
| 재선언 | 가능 | 불가능 | 불가능 |
| 재할당 | 가능 | 가능 | 불가능 |
| TDZ | 없음 | 있음 | 있음 |
console.log(a); // ❌ a는 호이스팅으로 인해 선언 전에 접근 가능하지만, 초기화는 아직 안 됨
var a = 10; // ✅ a는 undefined로 초기화됨
console.log(b); // ❌ b는 호이스팅으로 인해 선언 전에 접근 가능하지만, 초기화는 아직 안 됨
let b = 2; // ✅ b는 호이스팅되지만, 초기화 전에 접근하면 ReferenceError 발생
✅ 3. 옮바르게 사용하려면? (2025년 기준)
- 기본적으로 const 사용하기 -> 변수가 바뀔 필요가 없으면 const로 고정
- 변수를 재할당해야 한다? -> let 사용
- var는 사용하지 않음 (과거 호환성)
💡정리
- const: "변경하지 않을 값"만 선언 (기본값)
- let: "변경 가능"한 값을 선언할 때
- var: 과거 유물, 새로운 코드에서는 사용을 지양
GitHub - javascript-only/newJSRoom: https://thinky.tistory.com/category/Front-End/JavaScript
https://thinky.tistory.com/category/Front-End/JavaScript - javascript-only/newJSRoom
github.com
728x90
LIST
'Front-End > JavaScript' 카테고리의 다른 글
| [Javascript] New Javascript 3장 - 템플릿 리터럴 (5) | 2025.08.14 |
|---|---|
| [Javascript] New Javascript 2장 - 화살표 함수 (2) | 2025.08.12 |
| [JavaScrit] 4(완). 그래프 알고리즘 (0) | 2025.03.20 |
| [JavaScript] 3. 재귀 알고리즘 (0) | 2025.03.07 |
| [JavaScript] 2. 탐색 알고리즘 (0) | 2025.03.06 |