JavaScriptのアロー関数、無名関数を基礎から分かりやすく解説

こんにちは、フロントエンドエンジニアのてりーです。

関数とは

一連の手続きを1つの処理にまとめた物。
関数を使うことによって、毎回同じ処理を書かずとも、その関数を呼び出すことによって同じ処理を実行できる。

//関数宣言 //引数に+1をするfunctionを作る function increments(n){  return n+1 }  //呼び出し //incrementsを呼び出すと()に入れた引数に+1する処理を毎回してくれる。 console.log(increments(5)) //6 console.log(increments(1)) //2 

JavaScriptの関数の定義は2パターン

JavaScriptの関数には「式」と「文」のどちらかで定義する。

式:評価された後に値として存在するもの。

式を評価する事で、結果として評価値を返す。

式は評価した結果を変数に代入できる。

// 1 + 1という式の評価値を表示 console.log(1 + 1);  // => 2  // 式の評価値を変数に代入 const total = 1 + 1;  // 関数式の評価値(関数オブジェクト)を変数に代入 const fn = function() {     return 1; }; // fn() という式の評価値を表示 console.log(fn()); // => 1

文:何らかの手続きを処理系に命令するもの。

処理する1ステップが1つの文である。;で1文ごとに区切る。

ifやforなどが文としてよく使われている。

const isTrue = true; if (isTrue) {  処理 }

文は変数に代入できない!!その為、下はエラーが出る

// 構文として間違っているため、SyntaxErrorが発生する const forIsNotExpression = if (true) { 処理 }

アロー関数と無名関数

 

アロー関数式

 

ES2015で導入されてから、スッキリしてい見やすい為、急速に普及している記法。
アロー関数式では以下の省略ができる。

・引数がひとつだけの場合はカッコが省略できる
・本文が return 文だけのときは、return 文をブロックごと省略できる

省略例

const plusOne = function (n) {  return n + 1;  }  // アロー関数式() const addOne = (n) => { return n + 1;  };  // アロー関数式 省略 const increment = n => n + 1;

無名関数

名前がない関数。匿名関数とも呼ばれる。

宣言された関数は生まれた時点から名前を持つのが基本である。
関数の名前はFunction インスタンスとしての name プロパティに格納されてる。

function mercury() {} mercury.name  //宣言文で定義した関数の名前 'mercury'  const fn = function mars() {}; fn.name  // 関数式で定義した関数の名前 'mars'

もし名前を書かなかった場合(無名関数)は変数の名前が関数の名前になる。

const venus = function () {    console.log('I am Venus!');  };  venus(); //I am Venus! venus.name //'venus' //functionに名前がない為、変数名のvenusが関数の名前になっている。