본문 바로가기
FrontEnd

[JS] 호이스팅 (Hoisting)

by solanarey 2023. 10. 19.

호이스팅은 끌어올리는 것을 뜻한다.

var

console.log(str);

var str = '안녕하세요';

자바스크립트에서는 var str 부분을 선언 단계, ‘안녕하세요’ 부분을 할당 단계로 구분한다.

위와 같이 var 변수를 초기화 하기 전에 출력을 하려고 할 때, 선언 단계가 호이스팅(끌어 올라감) 되면서 undefined로 초기화 되어 출력된다.

함수 호이스팅

func();

function func() {
	console.log('안녕하세요');
}

위의 코드도 마찬가지로 함수도 호이스팅이 되기 때문에 출력이 된다.

let, const

console.log(str);
console.log(str2);

let str = '안녕하세요';
const str = '안녕하세요';

let과 const는 var와 마찬가지로 호이스팅은 되지만, var처럼 undefined로 초기화 되지는 않고 에러가 뜬다. 이런 일이 발생하는 이유를 TDZ(Temporal Dead Zone)이라고 한다. 일시적 데드 존은 변수를 사용할 수 없는 일시적인 비활성 상태를 나타낸다.

'FrontEnd' 카테고리의 다른 글

[React] React.js 시작하기  (0) 2023.11.02
[JS] Window 객체  (0) 2023.10.19
[JS] 변수 및 스코프  (0) 2023.10.19