[JavaScript] 호이스팅(Hoisting)이란 - Heee's Development Blog
<aside> 💡 함수 안에 있는 선언들을 모두 끌어올려서 해당 함수 유효 범위의 최상단에 선언하는 것. var 변수 선언과 함수선언문에서만 호이스팅이 일어난다.
</aside>
Quick Tip: How to Declare Variables in JavaScript - SitePoint
Declaration, initialization, assignment의 세 단계가 있다.
자바스크립트에서 선언과 초기화는 거의 동시에 일어나는데, 변수를 선언하게 되면 자바스크립트는 이 변수를 위한 메모리 공간을 만든다. 그리고 초기값을 undefined로 초기화해 준다.
선언 및 초기화 Declaration
var coffee;
console.log(coffee); //undefined
할당 Assignment
var coffee = "커피콩물"
console.log(coffee) //커피콩물
undefined와 null
undefined : 변수가 선언되었고 초기화도 되었지만 아직 할당되지 않은 상태
null : 할당까지 끝난 상태. 일부러 null 값을 변수에 할당해준 것이다.
스코프 단위 지역변수.
호이스팅 시 선언과 초기화를 동시에 진행한다.
<aside> 💡 선언 전에 var 변수에 접근하는 것이 가능하다. 호이스팅 때문.
</aside>