JavaScript 는 특이하게도 호이스팅(Hoisting) 이라는 기능이 탑재되어 있는데, 이는 함수 선언부가 유효범위 최상단으로 끌어올려지는 현상을 일컫는 말입니다.
const a = 3
// 함수 출력단
double()
// 함수 선언부
function double() {
console.log(a * 2)
}
이해하기 쉽게 설명하자면, 어떤 프로그램이던 코드를 위에서부터 아래로 읽어내려가지만 JavaScript 의 경우 호이스팅을 통해서 함수 출력을 선언보다 상단에 입력하더라도 문제없이 컴파일 되는 것입니다.
만약 코드를 해석함에 있어서 '왜 선언이 되지 않은 함수가 이곳에 출력되있지?' 라고 의문을 품을 필요 없이 '이 출력단 이후 어딘가에 함수를 선언해두었구나' 라고 생각하시면 되겠습니다.
참고문헌 https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/Arrow_functions
'Web > JS' 카테고리의 다른 글
[JS] 콜백 Callback (0) | 2021.07.21 |
---|---|
[JS] 화살표 함수 Arrow function (0) | 2021.07.21 |
export 문으로 내보내기 / import 문으로 가져오기 (0) | 2021.07.20 |
[node.js] nvm install error (0) | 2021.07.19 |
[Vanilla JS] create To do list (0) | 2021.07.16 |