공부를 하면서 개인적으로 궁금했던 부분을 해결하거나, 스터디를 통해 배운 내용을 정리합니다.
함수에 대한 선언을 실행 전에 미리 메모리에 등록하는 작업이다.
즉, 해당 개념을 토대로 함수 선언문과 함수 표현식을 정리한다면
함수 선언문으로 정의한 함수는 함수 선언문 이전에 호출할 수 있다.
그러나 함수 표현식으로 정의한 함수는 함수 표현식 이전에 호출할 수 없다.
이는 함수 선언문으로 정의한 함수와 함수 표현식으로 정의한 함수의 생성 시점이 다르기 때문이다.
함수 선언문
의 경우 미리 메모리에 등록되기 때문에, 코드의 순서에 상관없이 정상적으로 함수를 호출할 수 있게 되는 것이다.
함수 표현식
은 함수를 변수에 할당하기 때문에, 런타임 이전에 undefined로 초기화되고, 런타임 시점에 함수가 할당되어 작동된다.