Hoisting
한 마디로 끌 올.
대표적으로 JavaScript에서 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미합니다.
About
hoisting 명사 끌어 올리기, 들어올려 나르기.
단순하게 설명하자면 단어 뜻 처럼 스크립트 내 변수와 함수의 선언 순서에 상관 없이 순서가 '끌어올려~~'진 듯한 현상이다. 포인트는 물리적으로 '끌어올려'지는 것이 아니라 자바스크립트 엔진이 먼저 전체 코드를 한 번 스캔하고 실행컨텍스트에 미리 기록해 놓기 때문에 이런 현상이 발생하는 것이다.
함수를 호이스팅하는 예시를 보면 호이스팅의 개념을 쉽게 이해할 수 있다.
함수를 할당하는 function test(){...}
코드가 함수를 실행하는 test()
코드 보다 아래에 작성된 경우, 호이스팅 개념 없이 이론적으로 생각해 보면 맨 첫 째 라인의 test()
는 실행되지 않아야한다.
하지만 JS는 함수를 Hoisting(끌어올려~~!!)하기 때문에 최상단의 test()
코드도 정상 작동합니다.
in Rust
const
는 선언 순서에 상관없이 사용 가능함.