JavaScriptで関数を定義する方法は大きく分けて2つ「関数宣言」と「関数式」があります。
2つの違いはFunctionオブジェクトの生成タイミング。「関数宣言」ではコードブロックが実行する前に生成され、「関数式」はコードブロック実行時に生成されます。
そのため関数宣言では関数定義より前に記述しても関数を呼び出せます。
以下がよく見る3種類の関数となります。
【関数宣言】functionキーワードで書く
sample('hello world'); //「hello world」を出力
function sample(para){
console.log(para);
}
sample('hello world'); //「hello world」を出力
【関数式】関数リテラルで書く
sample('hello world'); //「sample is not defined」エラー
const sample = function(para){
console.log(para);
};
sample('hello world'); //「hello warld」を出力
【関数式】アロー関数で書く
sample('hello world'); //「sample is not defined」エラー
const sample = para => {
console.log(para);
};
sample('hello world'); //「hello warld」を出力