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('!');
}