JS

アロー関数

初級

読み方:アローかんすう|英語:Arrow Function

function の短い書き方で、(引数) => { 処理 } の形で書くよ。いつ使う? コールバック関数やmap/filterの引数など、短い関数を書くときに使うよ。間違いやすいポイント: アロー関数は独自のthisを持たないよ。オブジェクトのメソッドにアロー関数を使うとthisがundefinedになることがあるから注意しよう。

やさしい説明

アロー関数とは、関数を短く書ける記法です。=>(矢印)を使うので「アロー関数」と呼ばれます。

従来の function キーワードより短く書けるので、コールバック関数(他の関数に渡す関数)でよく使います。

1行で書ける場合は { }return を省略できます。引数が1つなら ( ) も省略可能です。

具体例・使い方

// 従来の書き方
const greet = function(name) {
  return "こんにちは、" + name;
};

// アロー関数(短い!)
const greet = (name) => "こんにちは、" + name;

// コールバックで使う(よくあるパターン)
const numbers = [1, 2, 3];
numbers.map(x => x * 2); // [2, 4, 6]

btn.addEventListener("click", () => {
  console.log("クリック!");
});

いつ使う?

配列メソッド(map, filter, forEach)のコールバック、イベントリスナー、短い関数を書くときに使います。現代のJavaScriptでは最も多く使う関数の書き方です。

間違いやすいポイント

❌ アロー関数ではthisが変わる

アロー関数は自分の this を持ちません。オブジェクトのメソッドには従来の function を使いましょう。初心者のうちはあまり気にしなくてOKです。

よくある疑問

Q: 通常の関数とアロー関数の違いは?

A: 書き方が短いこと以外に、thisの扱いが異なります。アロー関数は外側のthisを引き継ぎます。初心者のうちはどちらを使ってもOKです。

Q: 省略記法はある?

A: 引数1つなら括弧省略可: x => x * 2。処理が1行ならreturnと{}省略可: (a, b) => a + b。

Q: アロー関数でオブジェクトを返すには?

A: 括弧で囲みます: () => ({ name: '太郎' })。括弧がないと{}がブロックと解釈されます。

関連用語

📖 関連レッスン

レッスンを見る →

関連ブログ記事

⚠️ 関連するエラー

❓ 関連するQ&A