선언 전 함수를 호출합니다. 함수 선언문과 var·let에 넣은 함수 표현식은 언제 호출 가능해지나요?
꼬리 질문을 독립 문항으로 확장했습니다. 원래 문항에서 맥락 보기 →
잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?
답변과 점검 포인트 펼치기답변 접기
01
구두 답변
정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.
함수 선언은 scope 초기화 과정에서 호출 가능한 함수로 준비되는 경우가 일반적이고, 함수 표현식을 담은 var는 할당 전 undefined이며 let·const는 초기화 전 TDZ에 있습니다.
block 함수 선언·strict·module의 규칙은 문맥별로 확인합니다. var 표현식 호출은 undefined를 함수처럼 써 TypeError가 날 수 있고 let은 ReferenceError가 날 수 있습니다. 선언 형식과 실행 시점을 분리합니다.
02
득점 포인트
이해가 드러나는 지점을 확인해 보세요.
- 함수 선언은 scope 초기화 과정에서 호출 가능한 함수로 준비되는 경우가 일반적이고, 함수 표현식을 담은 var는 할당 전 undefined이며 let·const는 초기화 전 TDZ에 있습니다.
- 선언 형식과 실행 시점을 분리합니다.
03
감점 포인트
놓치기 쉬운 조건과 오해를 짚어 보세요.
- 다음 핵심 구분을 반대로 설명하거나 성립 조건을 생략한다: 함수 선언은 scope 초기화 과정에서 호출 가능한 함수로 준비되는 경우가 일반적이고, 함수 표현식을 담은 var는 할당 전 undefined이며 let·const는 초기화 전 TDZ에 있습니다.
04
더 파고들 거리
하나 더 질문하며 이해의 범위를 넓혀 보세요.
득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.
원리부터 공부하고 싶다면
답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.