hoisting의 사전적 의미: 끌어 올리기
호이스팅은 현재 문맥의 식별된 정보를 수집하는 추상적인 개념이다.
자바스크립트에서 선언과 밀접한 관련을 가진다. 변수 선언과 함수 선언을 스코프 내의 최상위로 끌어 올린다.
console.log(funcA());
console.log(funcB());
console.log(funcC());
function funcA() {
return 'funcA';
}
var funcB = function b() {
var c = 1;
return 'funcB';
}
var funcC = function() {
return 'funcC';
}
위 코드는 아래처럼 순서가 바뀌어 실행된다.
현재 위 코드를 그대로 실행시킨다면, 함수가 호출 되기전에 console이 출력서 함수가 정의되지 않았다는 오류가 발생한다.
function funcA() {
return 'funcA';
}
var funcB;
var funcC;
console.log(funcA());
console.log(funcB());
console.log(funcC());
funcB = function b() {
var c = 1;
return 'funcB';
}
funcC = function() {
return 'funcC';
}
🔎 참고자료 🔎
- MDN
- 생활코딩
- PoiemaWeb
- javascript info
- 코어 자바스크립트
- 러닝 자바스크립트
- 인사이드 자바스크립트