호이스팅

majungha·2023년 3월 28일
1

메모

목록 보기
21/57

오늘의 공부 👍

오늘은 호이스팅에 대해서 자세히 알아보고 복습해 보겠습니다.

📝 호이스팅


호이스팅을 이해하려면 var에 대해서 알아야 합니다. 간단하게 정리해보겠습니다.

  • 변수가 선언되기 전 접근하려 하면 위와 같은 에러가 나옵니다.

  • var 키워드는 에러를 발생시키는 것이 아니라 undefined로 참조가 됩니다.
  • 해당 변수의 선언 코드를 만나기 전에는 아무런 데이터가 담기지 않은 채로 로직이 동작하게 됩니다.
  • var로 선언된 변수는 JavaScript를 해석하는 과정에서 마치 그 선언 단계가 위로 끌어 올려진 듯 동작하기 때문입니다.
  • 이러한 개념을 호이스팅이라 부릅니다.
  • 호이스팅이란 함수, 변수의 선언이 마치 위로 끌어올려진 것처럼 동작하는 것입니다.

📝 변수의 선언 단계


호이스팅은 var뿐만아니라 let const도 일어나는데요 정리해보겠습니다.

  • 선언하는 변수는 선언 단계, 초기화 단계, 할당 단계를 거치게 됩니다.

  • 위 사진에서 식별자는 변수명을 뜻합니다.

  • let과 const는 선언단계와 초기화단계 사이에 TDZ(변수에 할당된 메모리가 부여되기 전 단계)가 존재합니다.
  • 그래서 호이스팅이 발생하지 않는 것처럼 동작하는 것입니다.

  • 함수 표현식도 마찬가지로 호이스팅이 발생하지 않는 것처럼 동작합니다.

  • var는 선언단계와 초기화단계가 함께 이루어집니다.

  • 변수를 변수명들이 담기는 전역 객체에 담아주는 과정과 해당 변수에 메모리 공간을 할당해주는 과정이 함께 수행합니다.

  • 함수 선언식도 var와 같이 동작합니다.


출처 및 참고
코드캠프

profile
개발자 블로그 / 항상 겸손한 자세로 배우면서 성장하자 할 수 있다!

0개의 댓글