호이스트, hoist
명사
- 소형의 감아올리는 장치. 공장 내의 재료 운반·조립에 사용하며, 들보 위에서 이동시킴. 구동 방식에 따라 공기 호이스트·전기 호이스트 등으로 나누어짐
구글의 검색 결과는 올린다는 의미로 명시되어있다.
자바스크립트 내에서의 호이스팅 동작을 알아보자.
console.log(a());
console.log(b());
console.log(d());
function a() {
return 'h1';
}
function b() {
return 'h1';
}
var d = function () {
return 'd';
}
원래는 오류가 나야 하는 코드 일 것이다. 함수를 선언, 할당하기도 전에 console을 실행 하기 때문이다.
하지만
자바스크립트가 실제로 실행하는 코드 순서는 위와 좀 다르다.
function a() {
return 'h1';
}
function b() {
return 'h1';
}
var d;
console.log(a());
console.log(b());
console.log(d());
d = function () {
return 'd';
}
바로 이 코드로 자바스크립트가 함수 선언식은 통째로 올리고 함수 표현식은 변수 선언만 올리고
할당은 나중에 처리한다.
즉 함수선언식과 다르게 함수 표현식은 선언과 할당을 분리가능하다.
'JS' 카테고리의 다른 글
ES6 - template literal (0) | 2020.07.21 |
---|---|
ES6 - Block scope (0) | 2020.06.21 |
클로저 (0) | 2020.06.08 |
스코프와 스코프체인 렉시컬스코프 (0) | 2020.06.08 |
blocking(블로킹)이란? (0) | 2020.06.03 |