var로 선언된 변수와 마찬가지로, 함수 선언도 스코프 맨 위로 끌어올려집니다.
따라서 함수를 선언하기 전에 호출할 수 있습니다.
f(); // 'f'
function f() {
console.log('f');
}
잠깐, 변수에 할당한 함수 표현식은 끌어올려지지 않습니다.
이들은 변수의 스코프 규칙을 그대로 따릅니다.
다음 예제를 보십시오.
f(); // ReferrenceError: f는 정의되지 않았습니다.
let f = function() {
console.log('f');
}