• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

두 번째 줄 부터 오류를 뿜어내요.

18.03.23 23:47 작성 조회수 93

0

Uncaught TypeError: b is not a function

at 2.function.html:12

console.log(a());

console.log(b());

console.log(c());

// 함수 선언문

function a() {

return 'a';

}

// 기명 함수표현식

var b = function bb() {

return 'bb';

}

// (익명) 함수표현식

var c = function() {

return 'c';

}

물론 console.log 를 함수 아래에 작성하면 이상없이 잘 나옵니다.

답변 1

답변을 작성해보세요.

1

함수표현식은 변수 선언부만 호이스팅되고 함수 본문은 호이스팅되지 않기 때문에,
함수가 정의되기 이전에 함수를 호출하면 오류가 나는 것입니다.
즉 2번째 줄에서의 오류는 의도된 것입니다.