JavaScipt - Hoisting

JiMin LEE·2025년 4월 7일
0

TIL

목록 보기
3/9

Hoisting 이란?

코드 평가 시 선언문을 해당 스코프의 상단으로 끌어 올려 메모리 선점/생성

목적: 각 식별자의 메모리 위치를 미리 잡아 stack 영역 세팅 ⇒ 실행이 빠름!



함수 Hoisting

함수 선언 전에 함수 실행 코드가 있어도 정상적으로 작동한다.

test(); // "Hosting" -> 정상 실행

function test() {
  document.writeln("Hoisting");
}

test(); // "Hoisting"



변수 Hoisting

변수 호이스팅할 때는

  • 선언 O
  • 초기화 O
  • 할당 X

var 변수 호이스팅

: 선언 전에 호출 시 undefined로 접근한다.

console.log(name); // undefined
var name = "Hong GilDong";
console.log(name); // Hong GilDong

const, let 변수 호이스팅

: 선언 전에 호출 시 Error 발생

console.log(name1); // ReferenceError
const name1 = "Hong GilDong";
console.log(name1); // Hong GilDong

console.log(name2); // ReferenceError
let name2 = "Hong GilDong";
console.log(name2); // Hong GilDong



TDZ(Temporal Dead Zone)

JS에만 있는 변수가 선언되기 전 코드 영역 - 임시사각지대

  • 변수가 선언되었지만 아직 초기화 되지 않는 상태
    == '선언만 되고 아직 초기화 되지 않는 변수가 머무는 공간'



참고

0개의 댓글