[Javascript] 호이스팅이란? (feat. var, let, const, var가 똥인 이유)
호이스팅이란? 호이스팅은 끌어올리다 라는 뜻을 가지고 있다. 자바스크립트 엔진이 코드를 실행하기 전, 변수, 함수, 클래스의 선언문을 끌어 올리는 것을 말한다. 변수의 선언과 초기화를 분리한 후, 선언만 코드의 최상단으로 끌어 올린다. console.log(a); // undefined var a = 0; 위 코드에서 변수 a를 선언하기도 전에 콘솔로 출력을 했더니 undefined이 출력되었다. 엥? 변수 a가 없을 때 콘솔에 찍었다면 Uncaout ReferenceError: a is not defined 에러가 떠야하는 것 아닌가? 싶다. 이것이 가능한 이유는 변수가 호이스팅 되었기 때문이다. undefined는 변수가 선언되었지만 값이 할당되지 않은 경우에 대한 기본 값이다. a에 0이 할당되었다..
2023.02.19