호이스팅(Hoisting)

Dorogono·2022년 4월 25일
0

JS 알아보기

목록 보기
2/19
post-thumbnail

호이스팅을 알기 전에 '변수'의 개념을 알아야 한다.

변수란.

let sum = 30;

sum이라는 변수를 선언하고, 30으로 초기화했다.

다른 말로 표현하면,

sum이라는 메모리 주소에 30을 할당했다.

여기에서 '메모리 주소'라는 걸 이용하는 거라는 것만 알면 된다.

이전에 포스팅했던 Undefined vs. Null 에서 예시로 보여줬던 var를 보면 호이스팅을 이해할 수 있다.

// var score; -> 호이스팅이 일어나서 undefined가 된다.
console.log(score); // undefined

var score = 80;

변수에 변수값이 들어가기 전에 메모리에 할당되기 때문에 초기화를 했더라도 undefined가 나오는 이유다.

var 뿐만이 아니라, let, const, function, function*, class 모두 똑같이 작용한다.

소스코드가 순차적으로 실행되는 시점인 런타임보다 먼저 선언된다. 그게 호이스팅이다.

쉽게 말하면,

운전하기 전에, 자동차 열쇠와 면허증도 필요하고 핸드 브레이크를 올려야 하는 등 기본인 것이 필요한 것과 동일하다.

profile
3D를 좋아하는 FE 개발자입니다.

3개의 댓글

comment-user-thumbnail
2022년 4월 25일

간단한 이론이지만 정리를 잘하시는거 같아 읽기가 편하고 이해하기 쉽습니다. ^0^

답글 달기
comment-user-thumbnail
2022년 4월 25일

자바스크립트를 사용한다면 꼭 알아야 할 중요한 개념을 이렇게 잘 정리해주셔서 감사합니다! 다른 언어를 더 많이 사용했어서 호이스팅이라는 게 많이 낯설었는데 이 게시글을 보고 조금 더 친숙해질 수 있었습니다 ^^

답글 달기
comment-user-thumbnail
2022년 4월 25일

자바스크립트에서 필수적인 개념인데 예시를 들어주셔서 쉽게 이해된 것 같습니다! 🙂

답글 달기