YTCW

2. javascript (호이스팅) 본문

javascript

2. javascript (호이스팅)

YTCW 2024. 7. 30. 17:14

직역하면 끌어올리다는 뜻이다.

자바스크립트 엔진 ( 변역기, interpreter ) 코드를 실행하기 전에 변수, 함수, 클래스의 선언문을 끌어 올리는 것을 말한다.

그러니까 제일 아래에서 선언해도 위로 끌어올려서 위에서 선언해준것처럼 해준다.

변수의 선언과 초기화를 분리한 후 선언만 코드의 최상단으로 옮긴다.

예를 들어 let a = 1; 이라면 할당한 값 1은 신경쓰지 않고 let a; 만 맨 위로 선언해준다.

하지만 최상단으로 끌어올린다고해서 let 선언부보다 같은 변수명을 선언하면 에러가 발생한다.

let letVariable;
var varVariable;

letVariable = 10;
varVariable = "Hello World";

// 호이스팅 효과로 선언 전에 값 할당이 가능
// letVariable2 = 10;
varVariable2 = "안녕";

let letVariable2 = 20;
var varVariable2 = "안녕 변수";

//! let VS var
// 공통점 : 재할당 가능 ( 변수의 특성 ), 호이스팅 가능
// 차이점
// let : 동일한 영역 내에서 같은 이름으로 재선언 불가
// var : 동일한 영역 내에서 같은 이름으로 재선언 가능 (사용x)