자바스크립트의 특성 상 아래쪽에 함수를 선언하고, 먼저 사용하는 경우가 있다.
이렇게 아직 선언되지 않은 함수, var 변수를 끌어올려서 사용하는 작동 방식을 호이스팅
이라고 한다.
이런 호이스팅은 웬만하면 피하는 것이 좋다! 코드를 이해하기가 어려워지기 때문이다.
🔧 아래 있는 선언을(만) 끌어올린다. = hoisting
console.log(name);
//출력 : undefined
name='doyeon';
console.log(name);
//출력 : doyeon
var name;
console.log(name);
//출력 : undefined
name='doyeon';
console.log(name);
//출력 : doyeon
var name='woong';
var name;
console.log(name);
//출력 : undefined
name='doyeon';
console.log(name);
//출력 : doyeon
name='woong';
🔧 var가 아닌 let을 쓰면 문제는 발생하지 않는다.