호이스팅(hoisting): var 사용을 지양해야 하는 이유 2

fieldnight·2023년 10월 25일
0

hoisting(호이스팅)이란?

JS가 코드 run 전에 선언부를 위로 끌어올리는 과정을 말한다.



var, const, let

console.log(input);
var input = "";-> 출력: undifined

var은 선언부와 초기화 둘 다 호이스팅 된다. (할당x)

console.log(input)
const input = "";-> 출력: error

let과 const는 선언부만 호이스팅 된다.
let과 const는 선언부와 초기화 사이에 DTZ (Dead Temporary Zone)이 있다.


function() 선언식, 표현식

function 함수명() {
  //선언식
}

선언식은 선언-초기화-할당 전부 호이스팅 된다!

var 함수명 = function () {
  //표현식
};

표현식은 TDZ에 걸린다.
화살표 함수도 표현식과 동일하다.


해결법: 표현식 함수와 화살표 함수보다 아래에서 해당 함수를 호출하자.

0개의 댓글

관련 채용 정보