함수 선언식은 호이스팅(Hoisting)이 적용된다.
호이스팅에 대한 이야기를 하기 전에, 호이스팅이 적용되는 함수 선언식에 대해서 알아보자
함수 선언식 설명
함수 표현식 설명
호이스팅이란 코드를 실행하기 전에 내부에서 변수와 함수의 위치를 맨 위로 옮겨 선언하는 자바스크립트의 문법적인 기능이다. 호이스팅은 변수나 함수를 좀 더 유연하게 사용할 수 있다는 장점이 있지만, 반대로 오류가 생기면 찾기 어렵다는 단점이 있다.
fnSayHello1(); // 안녕하세요1
function fnSayHello1 () {
console.log('안녕하세요1')
}
fnSayHello2(); // Uncaught ReferenceError: Cannot access 'fnSayHello2' before initializationat <anonymous>:1:1
const fnSayHello2 = function () {
console.log('안녕하세요2')
}