JS. 3 Hoisting

하승진·2024년 2월 15일

JS 따라잡기

목록 보기
3/49
post-thumbnail

호이스팅(Hoisting)

무언가를 들어올리거나 끌어 올리는 동작 설명

코드가 실행되기 전에 변수 및 함수 선언이 로컬 범위의 맨 위로 들어올려지거나 끌어올려지는 경우를 설명



var

위로 호이스팅, undefined값 할당


1. 선언 단계와 할당 단계를 분리

2. var greeting(선언 단계)로 undefined 반환

3. "= hello"(할당 단계)로 hello 할당

=> 즉, 선언 단계만 먼저 시작으로 undefined가 반환 후 hello 할당

=> 결괏값은 undefined로 나오지만 오류는 발생x


함수 선언문

함수 생성 전에 호출 시 올바로 출력이 되는 것을 확인



let / const


var과는 다르게 undefined도 아닌 어떤 값도 할당되지 않음

호이스팅은 되지만 할당은 안하는 것이다.

*TDZ : Temporal Dead Zone, 변수를 사용할 수 없는 일시적인 비활성 상태



결론

변수 생성시 재할당이 필요없으면 const 사용

재할당 필요하면 let 사용, but 변수의 scope를 최대한 좁게 만들어서 사용

profile
기어갈지언정 한 발자국씩이라도 가보자

0개의 댓글