매개변수와 변수에 대한 호이스팅
- 변수의 선언을 제일 위로 끌어올린다.
function a () { var x = 1; console.log(x); var x; console.log(x); var x = 2; console.log(x); } a();
function a () { var x; var x; var x; x = 1; console.log(x); console.log(x); x = 2; console.log(x); } a();
함수 선언 끌어올려짐(호이스팅)
호이스팅(hoisting)이란, 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미
function foo() { bar(); function bar() { ... } }
- 자바스크립트는 해당 스코프에서 함수 선언을 가장 먼저 처리하는데, 이런 특징을 끌어올림이라고 함 ⇒ 함수를 선언하기 전에 참조할 수 있음