728x90
반응형
var의 특징
- 선언이 호이스팅되어, 코드 맨 위로 타임슬립해서 미리 존재한다. 심지어 if나 for 블록 안에 선언해도 밖에서 접근 가능하다. 하지만 자유롭지만 너무 자유로운만큼 버그 유발 가능성 있다.
let의 특징
- 블록 스코프 안에서만 행동 가능하다. 같은 이름으로 다시 선언이 안되지만 값은 변경 가능하다.
- undefined로 호이스팅되긴 하지만, "Temporal Dead Zone(TDZ)" 때문에 실제 사용 전에 접근하면 오류가 뜬다.
const의 특징
- 선언과 동시에 초기화를 필수로 해야한다. 한 번 정하면 값을 바꿀 수 없다. (하지만 객체 내부는 바꿀 수 있음) 그렇기에 변하지 않는 값(상수) 선언에 적합하다.
특징 | var | let | const |
스코프 | 함수 스코프 | 블록 스코프 ({} 안에서만 유효) | 블록 스코프 ({} 안에서만 유효) |
호이스팅 | O (선언이 위로 끌어올려짐) | O (하지만 초기화는 안 됨) | O (하지만 초기화는 안 됨) |
재선언 | O | X | X |
재할당 | O | O | X |
용도 |
예전 코드 유지용 | 변경될 수 있는 값 선언 | 절대 바뀌지 않는 값 선언 |
예시 그림
반응형
'코딩 > Web' 카테고리의 다른 글
null vs undefined 차이 (1) | 2025.06.04 |
---|---|
Transpiling(트랜스파일링) - JavaScript (0) | 2025.05.10 |
JS 모듈 : Default Export와 Named Export의 차이점 (1) | 2025.01.29 |
HTTP의 구조와 Method (2) | 2024.11.09 |
CommonJS와 ESModule (3) | 2024.10.05 |