posts
FE
02-javascript
Hoisting

Hoisting

인터프리터가 코드를 실행하기 전에 함수,변수,class,import 등의 선언문이 스코프 내의 가장 최상단으로 끌어 올려지는 현상

호이스팅은 스코프별로 동작한다. (ex : 전역 스코프가 아닌 함수 내에 선언된 변수는 함수 스코프 안에서 호이스팅이 발생한다. )


var : 선언과 초기화 단계가 한번에 실행되기 때문에 선언 이전 변수에 접근하여도 이미 초기화가 된 상태이므로 접근이 가능하다.

let / const : 선언 단계와 초기화 단계가 분리되어 실행되며, 초기화 단계 이전에 변수에 접근하고자 하면 참조 에러가 발생한다.

함수 선언문 : 함수 선언, 초기화, 할당 세 단계가 모두 동시에 스코프 최상단에서 실행된다.

함수 표현식 : 변수의 호이스팅 규칙에 따라 동작한다.