728x90
var 변수의 문제점
- 변수 중복 선언 가능
- 함수 레벨 스코프
- 변수 호이스팅
let
- 변수 중복 선언 불가능
- 블록 레벨 스코프
- 변수 호이스팅
- let 변수는 선언 단계와 초기화 단계가 분리되어 일어남
- 스코프 시작 지점 ~ 초기화 시작 지점까지 일시적 사각지대 존재 --> 이때에는 변수를 참조할 수 없음
- 모든 선언은 호이스팅 되지만, ES6의
let
,const
,class
는 호이스팅이 안되는 것처럼 작동함
- let 변수는 전역 객체에 없음 --> 실행 컨텍스트에 존재
const
const
변수는 반드시 선언과 초기화를 같이 해야함- 재할당 불가능
- 상수 == 재할당이 금지된 변수
- 재할당이 불가능하기에 원시값이 있는 변수는 값을 교체할 수 없음
- 객체 변수는 객체 내부를 변경할 수 있음 --> 재할당과 불변은 다름
결론
- ES6 이상이라면
var
는 사용하지 않기 - 변수를 선언할 때에는 일단
const
로 사용하기
학습 도서
- '모던 자바스크립트 Deep Dive', 이웅모 저, 위키북스
'Language | Basic > JavaScript' 카테고리의 다른 글
[JavaScript 스터디] 생성자 함수로 객체 생성 (0) | 2021.01.29 |
---|---|
[JavaScript 스터디] Property Attribute (0) | 2021.01.29 |
[JavaScript 스터디] 전역 변수 (0) | 2021.01.24 |
[JavaScript 스터디] 스코프 (0) | 2021.01.24 |
[JavaScript 스터디] 함수 (0) | 2021.01.23 |