JavaScriptの関数宣言と関数式
関数宣言とは
関数(Rubyにおけるメソッド)を定義する方法の一つ
書き方
function 関数名( 引数 ){
// 関数内の処理
}
関数式とは
関数を定義する方法の一つ
関数宣言とは違い、function(){}という無名の関数を変数に代入して関数を定義する方法
書き方
変数 = function( 引数 ){
// 関数内の処理
}
関数宣言と関数式の違い
関数宣言と関数式では読み込まれるタイミングが異なります。
JavaScriptの関数宣言は関数の呼び出しより先に読み込まれます。一方で、関数式であれば先に読み込まれることはありません。なので以下のように記述するとエラーが起きます。
hello()
const hello = function(){
console.log('hello')
}
このコードを実行すると Uncaught ReferenceError... と表示されます。
これは、1行目の時点で関数helloが定義されていないためです。