
함수 선언식과 함수 표현식은 자바스크립트에서 함수를 정의하는 두 가지 방법으로, 이 둘의 주요 차이점은 호이스팅에 있습니다.
함수 선언식은 이름이 있는 함수입니다. 함수 선언식은 자바스크립트 엔진이 코드를 실행하기 전에 메모리에 로드하기 때문에 호이스팅이 발생합니다. 즉, 함수 선언식으로 정의된 함수는 코드 내 어디서든 호출할 수 있습니다.
함수 표현식은 변수에 익명 함수를 할당하는 방식으로, 할당된 변수명으로 호출할 수 있습니다. 함수 표현식은 호이스팅이 되지 않으며, 변수에 할당된 이후에만 호출할 수 있습니다. 따라서 코드의 흐름상 변수가 선언된 후에만 해당 함수를 사용할 수 있습니다.