호이스팅

uoayop·2021년 2월 27일
0

JavaScript

목록 보기
6/24
post-thumbnail

Javascript

1. 호이스팅

자바스크립트의 특성 상 아래쪽에 함수를 선언하고, 먼저 사용하는 경우가 있다.
이렇게 아직 선언되지 않은 함수, var 변수를 끌어올려서 사용하는 작동 방식을 호이스팅이라고 한다.

이런 호이스팅은 웬만하면 피하는 것이 좋다! 코드를 이해하기가 어려워지기 때문이다.

🔧 아래 있는 선언을(만) 끌어올린다. = hoisting

  • 함수가 아닌 var 변수에도 해당된다.
  • 선언을 아래서 하고, 위에서 사용한다.
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';
  • 다음과 같이 아래에서 변수를 선언해줬음에도 불구하고 undefined 가 출력이 된다.
  • 정말 !!선언만!! 올라간다고 보면 되겠다.
  • 위의 코드는 실제론 아래와 같다고 보면 된다.
    • 선언 -> 출력-> 할당 -> 출력 -> 할당
var name;

console.log(name);
//출력 : undefined

name='doyeon';

console.log(name);
//출력 : doyeon

name='woong';

🔧 var가 아닌 let을 쓰면 문제는 발생하지 않는다.

  • let은 먼저 선언이 되어야 사용이 가능하기 때문이다.
  • 오류가 발생하기 때문에 아예 출력이 되지않는다. 따라서 호이스팅이 일어나지 않는다.
profile
slow and steady wins the race 🐢

0개의 댓글