let 키워드
- 변수 중복 선언 금지.
- 블록 레벨 스코프
- 변수 호이스팅
- let 키워드로 선언한 변수는 변수 호이스팅이 발생하지 않는 것처럼 동작한다. 하지만 이는 아니다.
b. 변수 호이스팅이 발생하여 위와 같은 결과가 나타난다.let foo = 1; { console.log(foo) //Referenc Error let foo - 2; }
- let 키워드로 선언한 변수는 “선언 단계”와 “초기화 단계”가 분리되어 진행된다.
- 스코프의 시작지점 부터 초기화 지점까지 변수를 참조할 수 없는 부분을 TDZ(Temporal Dead Zone)이라 한다.
- var 키워드로 선언한 전역변수, 전역 함수, 암묵적 전역은 전역 객체 window의 프로퍼티가 된다. 하지만 let 키워드로 선언한 전역 변수는 전역 객체의 프로퍼티가 아니다
const 키워드
- 선언과 초기화
- const 키워드로 선언한 변수는 반드시 선언과 동시에 초기화 해야한다!
- 재할당 금지
- 상수
- 상수는 재할당이 금지된 변수를 말한다
- 재할당이 금지되었을 뿐 “불변”을 뜻하진 않는다.
- 따라서 cosnt 변수에 객체를 할당한 경우 값을 변경할 수 있다.
var 키워드는 사용하지 않으며 변수 선언은 기본적으로 const를 사용하고, let은 재할당이 필요한 경우에 한정해 스코프를 최대한 좁게 만들어 사용하는 것이 원칙이다.
'기술 서적 > 하루 30분 모딥다' 카테고리의 다른 글
하루 30분 모던 자바스크립트 딥 다이브. 생성자 함수에 의한 객체 생성 (0) | 2023.06.20 |
---|---|
하루 30분 모던 자바스크립트 딥 다이브. 프로퍼티 어트리뷰트 (0) | 2023.06.19 |
하루 30분 모던 자바스크립트 딥 다이브. 전역 변수의 문제 (0) | 2023.06.14 |
하루 30분 모던 자바스크립트 딥 다이브. 스코프 (0) | 2023.06.08 |
하루 30분 모던 자바스크립트 딥 다이브. 함수 (0) | 2023.06.03 |