JavaScriptで関数のタイプを確認する方法
以下の課題では、提示された関数が 関数宣言(Function Declaration) または関数式(Function Expression)のどちらであるかを 判断する必要があります。
単純なケースでは、見た目で判断するのは 難しくありません。しかし、その判断が 正しいかどうかをどのように確認すればよいでしょうか? 関数宣言(Function Declaration)と関数式(Function Expression)の違いを 利用してください: 前者はその定義よりも前で呼び出すことができますが、 後者はできません。
例えば、次のような関数があるとします:
let test = function() {
console.log('!');
}
この関数を定義よりも前に呼び出してみましょう:
test(); // コンソールにエラーが表示される場合は、関数式(Function Expression)
let test = function() {
console.log('!');
}
別の例です:
func(); // '!' と表示される場合は、関数宣言(Function Declaration)
function func() {
console.log('!');
}
関数の前にプラス記号を置いてみましょう:
func(); // コンソールにエラーが表示される場合は、関数式(Function Expression)
+function func() {
console.log('!');
}
上記の関数は関数式(Function Expression)であり、 いかなる変数にも代入されていないため、 名前 func ではアクセスできないので、 呼び出す方法はありません。
提示された関数が 関数宣言(Function Declaration)または関数式(Function Expression)のどちらであるかを 判断してください:
let test = function func() {
console.log('!');
}
提示された関数が 関数宣言(Function Declaration)または関数式(Function Expression)のどちらであるかを 判断してください:
console.log(
function func() {
console.log('!');
}
);
提示された関数が 関数宣言(Function Declaration)または関数式(Function Expression)のどちらであるかを 判断してください:
+function func() {
console.log('!');
}
提示された関数が 関数宣言(Function Declaration)または関数式(Function Expression)のどちらであるかを 判断してください:
function func() {
console.log('!');
}