Daehyunii's Dev-blog
var vs let & const 키워드의 '초기화단계' 시점이 차이나는 이유가 궁금하다. 본문
❔ Question/JavaScript
var vs let & const 키워드의 '초기화단계' 시점이 차이나는 이유가 궁금하다.
Daehyunii 2022. 7. 23. 01:36- var 키워드 : 선언 단계와 초기화 단계가 모두 런타임 이전 자바스크립트 엔진의 평가 단계에 이뤄진다.
- let const 키워드 : 선언 단계는 런타임 이전 평가 단계에서 이뤄지고, 초기화 단계는 런타임에 변수 선언문에 도달했을 때 실행된다.
그렇다면 왜 var 키워드와 let, const 키워드의 초기화 단계의 시점 차이가 존재하도록 만든 것일까??
답 : var 키워드로 선언한 변수는 코드의 흐름에 맞지 않게 호이스팅 되기 때문에 코드의 가독성을 떨어뜨리고 오류를 발생시킬 여지를 남기지만 let, const 키워드로 선언한 변수는 호이스팅은 되지만 '초기화 단계'가 런타임에 변수 선언문에 도달했을 때 실행되기 때문에 코드의 흐름에 맞게 코드를 읽을 수 있기 때문이다.
<참조 : 모던 자바스크립트 Deep dive>
2022.07.06 - [언어 공부 및 정리/자바스크립트[모던자바스크립트]] - 15장 let, const 키워드와 블록 레벨 스코프
'❔ Question > JavaScript' 카테고리의 다른 글
Set 객체에는 모든 값을 저장할 수 있다?? (0) | 2022.07.28 |
---|---|
var키워드로 선언한 전역 변수는 전역 객체의 프로퍼티가 된다 그렇다면 전역 변수는 결국 프로퍼티인가? (0) | 2022.07.24 |
재귀함수 작동 원리가 궁금하다 (0) | 2022.07.06 |
객체 리터럴 프로퍼티 관련 내용이 궁금하다 (0) | 2022.07.02 |
단항 산술 연산자 관련 원리가 궁금하다 (0) | 2022.06.28 |