JavaScript에서 함수 타입을 확인하는 방법

아래 문제에서는 제시된 함수가 함수 선언(Function Declaration)인지 함수 표현식(Function Expression)인지 판단해야 합니다.

간단한 경우에는 시각적으로 판단하기 어렵지 않습니다. 하지만 여러분의 판단이 맞는지 어떻게 확인할 수 있을까요? 함수 선언(Function Declaration)과 함수 표현식(Function Expression)의 차이점을 이용하세요: 전자는 정의보다 앞서 호출될 수 있지만, 후자는 그럴 수 없습니다.

다음과 같은 함수가 있다고 가정해 보겠습니다:

javascriptlet test = function() {
  console.log('!');
}

이 함수를 정의하기 전에 호출해 보겠습니다:

javascripttest(); // 콘솔에 오류를 출력하면, 함수 표현식(Function Expression)입니다.

let test = function() {
  console.log('!');
}

다른 예시입니다:

javascriptfunc(); // '!'를 출력하면, 함수 선언(Function Declaration)입니다.

function func() {
  console.log('!');
}

함수 앞에 더하기 기호를 붙여 보겠습니다:

javascriptfunc(); // 콘솔에 오류를 출력하면, 함수 표현식(Function Expression)입니다.

+function func() {
  console.log('!');
}

위 함수는 함수 표현식(Function Expression)이며 어떤 변수에도 할당되지 않았기 때문에, 이름 func로는 접근할 수 없어 호출할 방법이 없습니다.

Задание 1

제시된 함수가 함수 선언(Function Declaration)인지 함수 표현식(Function Expression)인지 판단하세요:

javascriptlet test = function func() {
  console.log('!');
}
Задание 2

제시된 함수가 함수 선언(Function Declaration)인지 함수 표현식(Function Expression)인지 판단하세요:

javascriptconsole.log(
  function func() {
    console.log('!');
  }
);
Задание 3

제시된 함수가 함수 선언(Function Declaration)인지 함수 표현식(Function Expression)인지 판단하세요:

javascript+function func() {
  console.log('!');
}
Задание 4

제시된 함수가 함수 선언(Function Declaration)인지 함수 표현식(Function Expression)인지 판단하세요:

javascriptfunction func() {
  console.log('!');
}