반응형
자바스크립트를 처음 접하면 가장 헷갈릴 수 있는 부분 중 하나가 변수 선언 방식입니다. var, let, const는 모두 변수를 선언하는 키워드지만, 작동 방식과 사용 범위에서 큰 차이를 보입니다. 이 글에서는 각 키워드의 특징과 차이점을 정리하고, 언제 어떤 키워드를 사용해야 하는지 명확히 이해할 수 있도록 설명합니다.
✨ 1. var — 과거 방식의 변수 선언
var name = "Alice";
- 재선언 가능: 같은 변수명을 다시 선언해도 오류가 발생하지 않음
- 재할당 가능: 값을 자유롭게 바꿀 수 있음
- 함수 스코프(Function Scope): 함수 내부에서만 유효함. 블록(if, for, while) 내에서 선언해도 함수 전체에서 접근 가능
- 호이스팅(Hosting): 선언이 코드 상단으로 끌어올려짐. 단, 초기화는 끌어올려지지 않음
예시:
console.log(x); // undefined (에러 아님)
var x = 10;
✨ 2. let — 블록 스코프 기반의 변수 선언
let age = 30;
- 재선언 불가능: 같은 스코프 내에서 같은 변수명을 다시 선언하면 오류 발생
- 재할당 가능: 값을 바꿀 수 있음
- 블록 스코프(Block Scope): 선언된 블록 내에서만 유효함
- 호이스팅은 되지만 TDZ(Temporal Dead Zone) 존재: 선언 전에 접근 시 오류 발생
예시:
console.log(y); // ReferenceError
let y = 20;
✨ 3. const — 상수 선언 (변경 불가)
const PI = 3.14;
- 재선언 불가능
- 재할당 불가능: 선언과 동시에 초기화 필수
- 블록 스코프
- 객체와 배열은 내부 변경 가능: 단, 참조 값 변경은 불가능
예시:
const arr = [1, 2, 3];
arr.push(4); // 가능
arr = [5, 6]; // TypeError
✅ 언제 무엇을 써야 할까?
키워드 | 재선언 | 재할당 | 스코프주 | 사용 용도 |
var | 가능 | 가능 | 함수 스코프 | 과거 코드, 호환성용 |
let | 불가 | 가능 | 블록 스코프 | 일반적인 변수 선언 |
const | 불가 | 불가 | 블록 스코프 | 변경되지 않을 값, 상수, 객체 |
✨ 결론
- 가능하면 const를 기본값처럼 사용하고, 변경 가능성이 있는 경우에만 let을 사용하세요.
- var는 레거시 코드 유지보수 외에 사용을 지양하는 것이 좋습니다.
반응형
'Programing > javascript' 카테고리의 다른 글
자바스크립트 비동기 처리 개념 정리(setTimeout, Promise, async/await) (0) | 2025.04.23 |
---|---|
자바스크립트 this 키워드 제대로 이해하기 (함수 / 객체 / 클래스에서) (0) | 2025.04.23 |
자바스크립트 == vs === 비교 연산자의 차이와 올바른 사용법 (0) | 2025.04.23 |
자바스크립트의 데이터 타입 완전 정복 (typeof, null, undefined) (0) | 2025.04.23 |
javascript 비밀번호 유효성 검사 (0) | 2025.04.22 |
javascript 이메일 유효성 검사 (0) | 2025.04.22 |
국가별 여권번호 유효성 검사 (0) | 2025.04.22 |
윤년 기준으로 날짜 선택 옵션을 자동 변경하는 함수 (0) | 2025.04.22 |