JS

호이스팅이란?

매일매일코드일기장 2022. 3. 24. 00:01

의미

javascript에서 호이스팅이란 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미합니다.

하지만 모두 할당하는 것이 아닌 var로 선언한 변수만 호이스팅시 undefined로 초기화합니다

 

 

예제

함수의 코드를 실행하기전에 함수 선언에 대한 메모리부터 할당합니다 덕분에 함수를 호출하는 코드를 함수선언보다 앞서 배치할수있습니다. 예를 들어

function catName(name) {
  console.log("제 고양이의 이름은 " + name + "입니다");
}

catName("호랑이");

/*
결과: "제 고양이의 이름은 호랑이입니다"
*/

위의 코드 조각이 일반적이라면 함수 호출을 먼저했을때를 보겠습니다.

catName("클로이");

function catName(name) {
  console.log("제 고양이의 이름은 " + name + "입니다");
}

/*
결과: "제 고양이의 이름은 클로이입니다"
*/

함수 호출이 함수 자체보다 앞서 존재하지만 그럼에도 불구하고 정상 동작합니다.

 

변수에도 호이스팅을 적용할수있습니다.

console.log(num); // 호이스팅한 var 선언으로 인해 undefined 출력
var num; // 선언
num = 6; // 초기화
console.log(num); // 초기화된 6 출력

 

'JS' 카테고리의 다른 글

자바스크립트 배열 메서드 3: reduce  (0) 2022.03.29
자바스크립트 배열 메서드 2: map  (0) 2022.03.29
자바스크립트 배열 메서드 1: forEach  (0) 2022.03.29
클로저 (Closure) 란?  (0) 2022.03.29