함수 선언식과 함수 표현식의 원리에 대해

안녕하세요, 자바스크립트 관련해서 질문을 드리려고 합니다.

공부를 하다보니 자바스크립트가 다른 언어와 다른 부분이 다소 존재하는 것을 확인할 수 있었습니다. 그것이 왜 그렇게 동작되는 것인지에 대한 의문이 계속 생겼습니다.

JS를 공부한 지 얼마 안됐고, 여러 글을 참고하다 보니 개념이 뒤죽박죽 엉터리로 잡혀있을 수도 있습니다. 그런 부분이 존재한다면 양해 부탁드리며, 바로 잡아주세요 :slight_smile:

함수 선언식과 함수 표현식의 원리에 대해

  • 전역으로 선언한 함수 선언식은 전역 컨텍스트의 Variable Object에 담아진다고 하는 데요(어떤 블로그 참고), 전역 함수이기 때문에 일단 해당 함수 이름 자체가 전역 컨텍스트에 실리는 것이고 실행은 함수 컨텍스트에서 실행되는 것인가요?
  • 그렇다면 함수 표현식은 실행 컨텍스트에서 어떤 과정을 거쳐서 동작하게 되는 것인가요?
  • 함수 호이스팅에서 선언식은 선언, 초기화 할당이 동시에 이뤄져서 호이스팅이 가능하고, 표현식은 선언과 초기화, 할당이 분리되어 이뤄지기 때문에 호이스팅이 불가능한 것인가요?

감사합니다!!