[JS] hoisting

Brian·2021년 8월 25일
0

JavaScript

목록 보기
2/6
post-thumbnail

hoisting ?

  • 선언한 함수와 변수를 해석기가 가장 상단에 있는 것처럼 인식
  • js 해석기는 코드의 라인 순서와 관계없이 함수 선언식과 변수를 위한 메모리 공간을 먼저 확보
  • 따라서, function a() 와 var는 코드의 최상단으로 끌어 올려진 것(hoisted) 처럼 보인다.
  • 익명 함수 var a = function() 은 포함 되지 않는다

Example #1

function add(){
   return 10;
}

add();
function add(){
   return 20;
}

hoisting을 이해하지 않고 위 코드를 봤을 때 add(); 결과가 10일 거라고 생각할 것이다. 그러나 결과는 20이다. 실제 순서는 아래와 같다.

function add(){
   return 10;
}

function add(){
   return 20;
}
add(); // 20

Example #2

var sum = 5;
sum = sum + i;

function add(){}

var i = 10; 

위 코드의 실행 순서를 정리하면 아래와 같아 진다.

var sum;
function add(){}
var i;

sum = 5;
sum = sum + i;
i = 10; 
profile
Jiujitsu_coder

0개의 댓글