호이스팅

kcs·2022년 9월 30일
0

1. var, let, const

console.log(x); // undefined

var x = 10;

var로 선언한 변수는 execute context 생성 시점에 undefined로 초기화 된다.
때문에 호이스팅 되어 오류가 아닌 undefined가 출력된다.
let, const 는 초기화되지 않기 때문에 변수 선언보다 위에서 변수를 호출하면 오류를 발생시킨다.

2. 함수선언식, 표현식

const x = 10;

callMe();  // 10

funtion callMe() {
	console.log(x)
}

함수선언식은 execute context 생성 시점에 함수전체가 저장되어 호이스팅된다.

const x = 10;

callMe() // ReferenceError

const callMe = function () {
	console.log(x)
}

함수표현식은 호이스팅되지 않는다.

profile
프론트엔드 개발자

0개의 댓글