JavaScript의 let과 const, Modern JavaScript의 핵심 선언문
JavaScript의 변수 선언 방식은 ES6(ECMAScript 2015) 이후로 크게 변화하였습니다. 기존의 var 선언문 대신 let과 const가 등장하면서 더 안정적이고 예측 가능한 코드 작성이 가능해졌습니다. 이 글에서는 let과 const의 특징과 활용법을 깊이 있게 살펴봅니다.

목차
- let과 const의 등장 배경
- let의 특징과 사용법
- const의 특징과 사용법
- Temporal Dead Zone(TDZ)
- 스코프(Scope) 비교: var, let, const
- let과 const 활용의 모범 사례
- 자주 발생하는 실수와 주의점
let과 const의 등장 배경
ES6 이전에는 JavaScript에서 변수를 선언하기 위해 var를 사용했습니다. 하지만 var는 함수 스코프(function scope)로 인해 예기치 않은 동작을 초래하는 경우가 많았습니다. 이를 해결하기 위해 블록 스코프(block scope)를 지원하는 let과 const가 도입되었습니다.
let의 특징과 사용법
let은 블록 스코프를 가지며 재할당이 가능합니다. 다음은 주요 특징입니다:
- 같은 블록 내에서 중복 선언이 불가능합니다.
- 초기화하지 않아도 선언할 수 있습니다.
예제 코드:
let count;
count = 10;
console.log(count); // 10
const의 특징과 사용법
const는 상수를 선언하는 데 사용되며, 선언과 동시에 초기화해야 합니다. 주요 특징:
- 선언 이후 값을 변경할 수 없습니다.
- 객체나 배열의 경우, 참조값은 고정되지만 내부 데이터는 변경 가능합니다.
예제 코드:
const name = "JavaScript";
console.log(name); // "JavaScript"
const arr = [1, 2, 3];
arr.push(4);
console.log(arr); // [1, 2, 3, 4]
Temporal Dead Zone(TDZ)
TDZ는 변수가 선언되기 전에 접근하려고 하면 ReferenceError가 발생하는 구간을 말합니다. 이는 let과 const 모두에 적용됩니다.
예제:
console.log(a); // ReferenceError
let a = 5;

스코프(Scope) 비교: var, let, const
세 가지 선언문의 스코프를 비교하면 다음과 같습니다:
| 선언문 | 스코프 | 특징 |
|---|---|---|
| var | 함수 스코프 | 중복 선언 가능 |
| let | 블록 스코프 | 중복 선언 불가능 |
| const | 블록 스코프 | 상수, 재할당 불가 |
let과 const 활용의 모범 사례
효율적이고 안정적인 코드를 작성하기 위해 다음과 같은 규칙을 따르는 것이 좋습니다:
- 변경이 필요 없는 값에는
const를 사용합니다. - 값이 변경될 가능성이 있다면
let을 사용합니다. - 가능한 한
var사용을 지양합니다.
자주 발생하는 실수와 주의점
초보자들이 흔히 저지르는 실수:
- 초기화되지 않은
const선언: SyntaxError를 초래합니다. - TDZ에 대한 이해 부족: 선언 전에 변수를 사용하려 하면 오류가 발생합니다.
- 중복 선언:
let과const는 중복 선언을 허용하지 않습니다.
'프로그래밍 언어 > 자바스크립트' 카테고리의 다른 글
| JavaScript에서 null의 역할, 빈 값과 초기화의 의미 (0) | 2025.01.17 |
|---|---|
| JavaScript 함수에서 undefined 반환 이해하기 (0) | 2025.01.11 |
| boolean 타입 핵심 이해, JavaScript 논리 연산 구현하기 (0) | 2024.12.30 |
| JavaScript null과 객체 초기화, 코드 안정성을 높이는 방법 (0) | 2024.12.24 |
| JavaScript에서 undefined가 발생하는 이유와 처리 방법 (0) | 2024.12.18 |