본 게시물은 한빛미디어의 "모던 자바스크립트 핵심 가이드"(알베르토 몬탈레시 지음)를 공부하면서 작성되었습니다.
이전 글: [JS 핵심 가이드] 00. 자바스크립트 기초
01. var, let, const
- ES6부터 등장한 let과 const
- 기존에 var로 변수를 선언할 때와의 차이점
- let과 const는 블록스코프에 종속된다.
- let과 const의 차이점
- let: 재할당 (O), 다시 선언(O)
- const: 재할당 (X), 다시 선언(X)
- 이 때, const로 선언된 변수가 불변이라는 의미는 아니다.=> 이 경우, 변수 전체(person)를 재할당하는 것이 아니라 그 속성 중 하나만 재할당하는 것이므로 문제가 없다!
//const에 객체가 담겼을 때
const person = {
name: 'Alberto',
age: 25
};
person.age = 26;
console.log(person.age); // 26
=> 이 경우, 변수 전체(person)를 재할당하는 것이 아니라 그 속성 중 하나만 재할당하는 것이므로 문제가 없다!
- 정리
| var | let | const | |
|---|---|---|---|
| 스코프 | 함수스코프 | 블록스코프 | 블록스코프 |
| 재할당 | O | X | |
| 다시 선언 | O | X | |
| 정의 전 접근? | 가능 (undefined의 값을 갖게 됨) but 값에는 접근 불가 | 불가능(ReferenceError) * 변수가 선언될 때 까지 일시적으로 비활성구역(TDZ)에 있게 됨. 따라서 초기화전에 변수에 접근하면 오류가 발생 ( -> 디버깅 관점에서 undefined 보다 이득!) |
불가능(ReferenceError) |
'2) 개발 > JavaScript' 카테고리의 다른 글
| [JS 핵심 가이드] 03. 함수 기본값 인수 (0) | 2021.10.25 |
|---|---|
| [JS 핵심 가이드] 02. 화살표 함수( => ) (0) | 2021.10.24 |
| [JS 핵심 가이드] 00. 자바스크립트 기초 (0) | 2021.10.22 |
| [JS 핵심 가이드] 0. 목차 소개 (0) | 2021.10.21 |
| [JS/기초] 자바스크립트의 실행컨텍스트(Execution contexts)와 콜스택(Call Stack) (0) | 2021.08.14 |