Hoisting - 호이스팅

이재홍·2022년 5월 11일
0

Basic JS

목록 보기
1/18
post-thumbnail

Basic Js

Day 01 호이스팅

MDN

  • 구동원리

var로 선언한 변수의 경우 호이스팅 시 undefined로 변수를 초기화합니다.
반면 let과 const로 선언한 변수의 경우 호이스팅 시 변수를 초기화

JavaScript는 초기화를 제외한 선언만 호이스팅합니다. 변수를 먼저 사용하고 그 후에 선언 및 초기화가 나타나면, 사용하는 시점의 변수는 기본 초기화 상태(var 선언 시 undefined , 그 외에는 초기화하지 않음)입니다.

console.log(aaa)
var aaa = 1;
// undefined

console.log(bbb)
const bbb = 2;
//VM444:1 Uncaught ReferenceError: bbb is not defined

catName()
function catName(){
    console.log(`고양이이름`)
}
// VM653:3 고양이이름

cat()
var cat = function() {
    console.log(`코콬`)
}
// VM819:1 Uncaught ReferenceError: cat is not defined

ex_호이스팅

  • var, let & const 의 차이
  • 선언식 함수는 호이스팅이 가능하다.
  • 다른 함수식은 불가능. (표현식함수)

에러를 볼 수 있어야지 어디가 고장났는지 알 수 있기 때문에 let,const , 다른 함수식을 쓰는 이유(?)

var, 선언식은 접근이 가능하기 때문에 사용 X

호이스팅이란?? 변수/함수의 선언부만 코드의 최상단으로 끌어 올려주는 것이다.

호이스팅 정리

  • 변수/함수의 선언부만 코드의 최상단으로 끌어 올려주는 것이다.

호이스팅이 되더라도 접근을 막는 방법

  • 변수는 let, const 사용 (TDZ 기억) - 템프럴 데드 존
  • 함수 선언식보다는 표현식을 이용

0개의 댓글