Hoisting

Dalaran·2022년 1월 16일
0

React & JavaScript

목록 보기
5/15
post-thumbnail

⚙︎ 호이스팅

   호이스팅이란 var로 선언된 표현식이나 함수 선언문 등을 살행했을 때 해당 스코프의 맨 위로 끌어올리는 현상을 말한다. 이러한 현상은 JS가 소스코드를 평가할 떄 선언문으로 작성된 변수와 함수 등을 실행하여 변수와 함수 식벽자를 key값으로 '실행 컨텍스트'가 관리하는 환경에 등록하기 때문이다.

  이런 호이스팅 현상을 방지하기 위해서는 var이외의 let, const로 선언을 하는 방법이 있다. 이와 같은 선언은 블록스코프이기 때문에 우선 선언된 변수는 TDZ(Temporal Dead Zone)에 배치되었다가 실행 후 TDZ에서 제거되면서 사용가능한 형태가 되기 때문이다. 이러한 방식을 이용하여 함수 또한 함수 표현식, 화살표 함수를 사용함으로서 호이스팅을 방지할 수 있다.

// 함수 표현식
const dalaran = function(){...}
// 화살표 함수
const dalaran = () => {...}

  하지만 화살표 함수는 'this' 를 바인딩할 때 동적으로 결정되는 일반함수와는 달리 언제나 상위 스코프를 바인딩하기에 이를 잘 활용할 수 있게 사용하는 것이 좋다.

0개의 댓글