関数宣言の違い
関数を宣言する両方の方法は同等ですが、重要な違いがあります。Function Declarationとして宣言された関数は、その宣言が行われる前であってもアクセス可能です。
以下の例をご覧ください:
// 関数が宣言される前にアクセス:
func(); // '!' を出力
function func() {
console.log('!');
}
一方、関数式はコードの実行時に作成されるため、その定義より前ではアクセスできません。したがって、以下のコードはエラーを発生させます:
func(); // エラー、この関数はまだ存在しない!
let func = function() {
console.log('!');
};
Function Declarationとして関数を作成してください。その関数が宣言位置よりも前で利用可能であることを確認してください。
Function Expressionとして関数を作成してください。その関数が宣言位置よりも前では利用できないことを確認してください。