Hoisting

Suyeon·2020년 10월 21일
0

Interview prep

목록 보기
8/22

Hoisting은 자바스크립트 엔진이 variable 이나 function declaration을 스코프(function-level scope)의 최상단으로 끌어올리는 행위이다.

No matter where functions and variables are declared, they are moved to the top of their scope regardless of whether their scope is global or local.

  • var
  • function declaration
  • Not error but undefined
// Var
console.log(foo); // undefined
var foo = 1;
console.log(foo); // 1

// Function Declaration
foo(); // 'FOOOOO'
function foo() {
  console.log('FOOOOO');
}
foo(); // 'FOOOOO'

// Function Expression
bar(); // Uncaught TypeError: bar is not a function
var bar = function () {
  console.log('BARRRR');
};
bar(); // 'BARRRR'

Hoisting은 때때로 의도치 않은 결과를 도출할 수 있기 때문에, 가급적 선언후 호출하기를 권장하며, stric mode와 함께 사용하는게 좋다.

profile
Hello World.

0개의 댓글