概要
JavaScript Primerを読んでてワチャワチャしてきた部分を整理する。
基本的には書いてあることそのままです。
参考:https://jsprimer.net/basic/function-declaration/
関数宣言
functionから始まる文のこと。
const huga = true;
function hoge(huga)
{
return huga === true;
}
console.log(hoge(huga)); // => true
返り値を省略した場合、return文を省略した場合はundefinedを返す。
function hoge()
{
return;
}
function huga()
{
}
console.log(hoge()); // => undefined
console.log(huga()); // => undefined
functionキーワードを使用した関数式
関数式とは、関数を値として変数へ代入している式のことを言います。
関数が値として扱えることを**ファーストクラスファンクション(第一級関数)**と呼ぶ。
関数式の定義方法は以下の通り。
const hoge = function()
{
return 'hoge';
};
上記のように関数名を省略して書くことができる。
このような名前を持たない関数を**匿名関数(または無名関数)**と呼ぶ。
Arrow Functionを使用した関数式
const hoge = () =>
{
return 'hoge';
}
カッコイイですね。
省略記法がいっぱいあるので使いこなしたいところです。
省略記法のルールは以下の通り。
- 関数の仮引数が1つのときは()を省略できる。
- 関数の処理が1つの式である場合に、ブロックとreturn 文を省略できる。
- その式の評価結果を return の返り値とする。
const hoge = () => {return 'hoge';}; // 仮引数がないとき
const hoge = (huga) => {return 'huga';}; // 仮引数が1つのみのとき
const hoge = huga => {return 'huga';}; // 仮引数が1つのみのときは()を省略可能
const hoge = (huga, piyo) => {return huge + piyo;}; // 仮引数が複数のとき
以下の2つは同じ意味となる。
const hoge = (huga) => {return huga * huga;};
const hoge = huga => huga * huga; // 1行のみの場合はreturnとブロックを省略できる