Skip to content

Hoisting

한 마디로 끌 올.

대표적으로 JavaScript에서 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미합니다.

About

hoisting 명사 끌어 올리기, 들어올려 나르기.

단순하게 설명하자면 단어 뜻 처럼 스크립트 내 변수와 함수의 선언 순서에 상관 없이 순서가 '끌어올려~~'진 듯한 현상이다. 포인트는 물리적으로 '끌어올려'지는 것이 아니라 자바스크립트 엔진이 먼저 전체 코드를 한 번 스캔하고 실행컨텍스트에 미리 기록해 놓기 때문에 이런 현상이 발생하는 것이다.

함수를 호이스팅하는 예시를 보면 호이스팅의 개념을 쉽게 이해할 수 있다.

test(); // 이 코드가 과연 실행될까..?

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

test();

함수를 할당하는 function test(){...} 코드가 함수를 실행하는 test() 코드 보다 아래에 작성된 경우, 호이스팅 개념 없이 이론적으로 생각해 보면 맨 첫 째 라인의 test()는 실행되지 않아야한다.

하지만 JS는 함수를 Hoisting(끌어올려~~!!)하기 때문에 최상단의 test()코드도 정상 작동합니다.

in Rust

const는 선언 순서에 상관없이 사용 가능함.

See also

Favorite site