반응형
변수는 총 선언, 초기화, 할당의 3가지 과정을 거친다.
var 키워드로 선언한 변수는 let, const와 다르게 선언과 초기화를 동시에 한다.
초기화 단계에서 변수의 값은 암묵적으로 undefined가 된다.
왜 여기에서 '암묵적'이라는 단어가 들어가는 것일까?
모던 딥다이브 자바스크립트책을 다시 한번 읽다가 이 키워드가 눈에 들어오기 시작했다.
암묵적
사실 변수는 undefined로 초기화되지 않는다.
메모리 공간에 이전에 다른 애플리케이션에서 사용하던 쓰레기 값이 남아있을 수 있다.
값을 할당하지 않은 상태에서 참조하게 되면 쓰레기 값이 나오는 것이다.
이러한 오류를 방지하기 위해 자바스크립트는 undefined로 한번 더 할당한다.
즉,
최초로 값을 할당하는 초기화 단계에서 var 키워드로 선언한 변수는 암묵적으로 undefined가 할당되는 것이다!
cf)
https://brunch.co.kr/@26dbf56c3e594db/15
Modern Deep Dive Javascript
반응형
'Front-end > JavaScript' 카테고리의 다른 글
[JS] 모듈(Module)이란? 그리고 모듈 시스템을 알아보자 (0) | 2024.02.23 |
---|---|
<input> 이벤트의 실행 순서는? onChange, onKeyDown, onKeyPress, onKeyUp, onInput (0) | 2024.01.29 |
[JS] 페이지 이동하기 (location.href/replace, window.open) (4) | 2023.09.09 |
[JS] javascript:void(0)란? (0) | 2023.06.07 |
[JS] this란? 바인딩 및 일반 함수 vs 화살표 함수 알아보기 (0) | 2023.06.01 |