호이스팅

이제우·2023년 9월 19일
0

호이스팅이란

스코프 안에 존재하는 모든 선언을 스코프의 최상단으로 끌어올리는 것

  • 스코프 : 변수에 접근할 수 있는 범위. 자바스크립트는 전역과 지역 2가지가 있음

변수의 호이스팅

변수는 1. 선언 2. 초기화 3. 할당 3가지 순서를 거쳐 생성된다.

var

var는 선언과 초기화가 동시에 되어 선언문 전에 접근하여도 오류가 발생하지 않는다.

let

let은 선언과 초기화가 각각 따로 이루어 진다. 때문에 선언문 전에 접근하면
"정의 되지 않았다"는 오류가 발생한다. 스코프의 시작지점부터 변수 선언문까지 이 변수에 접근하지 못하는 일시적 사각지대(TDZ)가 생긴다.

함수의 호이스팅

함수는 선언, 초기화, 할당은 한번에 이루어지기 때문에 TDZ도 존재하지 않는다.

fun1();

function fun1(){
	console.log("hi");
}

이렇게 선언 전에 접근해도 변수가 잘 실행된다.

profile
게으른 사람 중에 제일 부지런하게 사는 사람이 꿈

0개의 댓글