[JavaScript] Hoisting

유아현·2022년 11월 9일
0

JavaScript

목록 보기
13/25
post-thumbnail

Hoisting

  • 함수 안에 있는 선언들을 모두 끌어올려서 해당 함수 유효 범위의 최상단에 선언하는 것

  • 함수 내에서 아래에 있는 선언 중 필요한 값들을 끌어 올리는 것(실제로는 끌어 올려진 게 아님)

  • 코드를 실행하기 전 변수 선언, 함수 선언이 해당 스코프의 최상단으로 끌어 올려진 것 같은 현상

  • 자바스크립트 모든 선언에는 호이스팅이 일어나지만 let, const, class의 선언문은 호이스팅이 발생하지 않는 것처럼 보인다.

  • var로 선언할 경우: 해당 스코프의 최상단으로 끌어 올려진 것 같이 undefined가 출력되지만

  • let나 const로 선언할 경우: 호이스팅이 발생하지 않은 것처럼 참조 에러로 보이지만 일시적 사각지대인 TDZ에 머물러 있는 것이라고 한다.

참고
https://hanamon.kr/javascript%ED%98%B8%EC%9D%B4%EC%8A%A4%ED%8C%85%EC%9D%B4%EB%9E%80-hoisting/

0개의 댓글