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 키워드와 블록 레벨 스코프

 

15장 let, const 키워드와 블록 레벨 스코프

15.1 var 키워드로 선언한 변수의 문제점 ES5까지 변수를 선언할 수 있는 유일한 방법은 var 키워드를 사용하는 것이었다. var 키워드로 선언된 변수는 독특한 특징이 있다. 15.1.1 변수 중복 선언 허용

pinetree93.tistory.com