読み方 : アローかんすう
アロー関数【arrow function】
概要
アロー関数とは、JavaScriptで関数をより短く簡潔に式として記述するための構文。ES2015(ES6)規格で導入され、等号(=)と大なり記号(>)を組み合わせた矢印のような記号「=>」を用いる。

関数定義を式のように記述できる記法で、その場限り使用する、名前のない「無名関数」を式のように定義する「ラムダ式」のJavaScriptにおける記法である。従来のfunctionキーワードを用いる関数定義に比べて短い記述で関数を定義できる。
例えば、引数を二つ受け取り和を返す処理は、function構文では「function(x,y){ return x+y }」のように複数のキーワードや波括弧を伴うが、アロー関数では「(x,y)=>x+y」のように引数の後に「=>」を書き、その右側に式を置くだけで表現できる。処理が単一の式である場合は波括弧やreturn文を省略でき、その式の評価結果が自動的に返される。処理が複雑な場合は従来記法と同じように記述してもよい。
アロー関数は関数を引数として他の関数に渡す用途などでよく用いられる。例えば、Arrayオブジェクトのmapやfilter、forEachなどの高階関数にコールバック関数を渡す際、アロー関数を用いることで処理内容を簡潔に記述できる。実際の開発現場では、タイマー処理やサーバからのデータ取得後の動作指定、ボタンがクリックされた時の処理など、様々な場面でこの構文が標準的に使われている。
一方、従来の関数と挙動が異なる点もある。例えば、自身を参照するthisキーワードの扱いについて、アロー関数は独自のthisを持たず、定義された外側のスコープのthisをそのまま参照する。この性質はクラス構文内のメソッドやイベントハンドラの記述で重要となる。また、argumentsオブジェクトを持たない、コンストラクタとして使用できないなどの制約もある。