[PR] 本記事にはプロモーションが含まれています。

JavaScriptのアロー関数って?「昔の書き方」から進化の歴史をやさしく解説!

JavaScript

JavaScriptのコードを見ていると、mapfilter の中で突然現れる line => { ... } という謎の記法。「これってどういう意味?」「暗号みたい…」と感じたことはありませんか?

 よく「function line => の省略かな?」と間違えられやすいのですが、実は少し違います。
 これは、昔からある標準的な「関数」の書き方が、プログラマーの手間を減らすために少しずつ短く進化した究極の姿なのです。

 今回は、その進化の過程を3つのステップでやさしくひも解いていきましょう!

第1形態:昔ながらの「名前のない関数」

 昔のJavaScriptでは、その場ですぐに使い捨てる「名前のない関数(匿名関数)」を作る時、このようにしっかりと function と書いていました。

JavaScript
// 昔ながらの書き方
array.map( function(line) { 
  return 変換処理; 
} )

 function というキーワードがあり、その直後のカッコ () の中に、データを受け取るための変数(引数)である line が入っています。とても丁寧ですが、毎回書くには少し長いですね。

第2形態:アロー(矢印)の誕生

 「毎回 function って書くの、長くて大変だな…」というプログラマーたちの声から生まれたのが「アロー関数」です。

JavaScript
// アロー関数の基本形
array.map( (line) => { 
  return 変換処理; 
} )

 ここでついに =>(矢印)が登場します。長い function という文字をまるごと消し去り、代わりに => を置くだけで関数として成立するようになりました。だいぶスッキリしましたね!

第3形態:さらに短く!究極の省略形

 アロー関数はこれだけでは終わりません。実は「引数(受け取るデータ)が1つだけの時は、引数を囲むカッコ () を省略できる」という特別なルールが用意されています。

JavaScript
// 究極の省略形(よく見る形!)
array.map( line => { 
  return 変換処理; 
} )

 これが、私たちがよくコードで見かける形の正体です! function(line) から function が消え、さらに () も消え去った結果、line => という非常にシンプルな形に行き着きました。

 最初は見慣れない記号に戸惑うかもしれませんが、この進化の過程を知っていると、ただの「便利な省略記法」であることがスッと腑に落ちるはずです。
 次に => を見かけたときは、ぜひ「元々は function だったんだな」と思い出してみてくださいね。

コメント