WEB🔨/자바스크립트

[JavaScript] JS Flow - 호이스팅(hoisting)

최문경 블로그 2020. 6. 12. 20:25
 

Javascript 핵심 개념 알아보기 - JS Flow - 인프런

ES6 이전까지의 자바스크립트 전체를 관통하는 핵심 개념들에 대하여, 전반적인 흐름을 살펴보는 강의입니다. 초급 웹 개발 프로그래밍 언어 Javascript 알고리즘 온라인 강의 핵심개념을 알아보는

www.inflearn.com

정의

변수 '선언'와 함수 '선언'을 끌어 올리는 것을 hoisting이라고 한다.

자바스크립트 엔진은 코드를 실행하기 전에 변수 선언과 함수 선언을 위로 끌어올린다.

 

그래서 아래와 같이 코드를 작성해도 오류가 발생하지 않는다.

console.log(a());
console.log(b());
console.log(c());

function a() {
	return 'a';
}

var b = function bb() {
	return 'bb';
}

var c = function() {
	return 'c';
}
// hoisting을 한 후
function a() {
	return 'a';
}

var b;
var c;

console.log(a());
console.log(b());
console.log(c());

b = function bb() {
	return 'bb';
}

c = function() {
	return 'c';
}