1. 山田 太郎さんへの挨拶
  2. 別の名前でも動く
  3. 1 文字の名前
  4. 空文字列のとき
コース一覧
JavaScript基礎文法:処理を組み立てる
アロー関数

JavaScript基礎文法:処理を組み立てる

if・switch による条件分岐、配列とループ、関数とコールバック、オブジェクトを順に組み立てる全 33 レッスン(525 分)の基礎文法コースです。FizzBuzz、作品リスト、関数への整理、作品データの構造化を通して、入力から結果を返す処理を自分で分解して書きます。DOM 操作は次のコースで扱います。

1
条件分岐
01. if 文の基本15分
02. if / else if / else で段階判定15分
03. switch 文で値を一覧から選ぶ15分
04. 条件を組み合わせる20分
05. FizzBuzz で複数条件を組み立てる20分
06. つくる 時間帯で挨拶を変える20分
07. 第1章まとめクイズ10分
2
配列とループ
01. 配列のきほん15分
02. 要素を足す・取り除く15分
03. for ループで合計を求める15分
04. for-of で配列を走査する15分
05. while で条件を満たす間くり返す15分
06. break と continue でループを制御する15分
07. つくる 作品リストを一覧にする20分
08. 第2章まとめクイズ10分
3
関数
01. 関数宣言15分
02. アロー関数15分
03. デフォルト引数15分
04. 早期 return でネストを浅くする15分
05. 変数のスコープ15分
06. コールバック関数15分
07. forEach で配列をまわす15分
08. つくる 処理を関数に整理する20分
09. 第3章まとめクイズ10分
4
オブジェクト
01. オブジェクトのきほん18分
02. オブジェクトで複数の値を返す16分
03. const と参照18分
04. ?. で安全に取り出す16分
05. 分割代入18分
06. スプレッド構文18分
07. find と includes で探す16分
08. つくる 作品データを構造化する25分
09. 第4章まとめクイズ10分

アロー関数

アロー関数の省略
解説

このレッスンで分かること

  • const 名前 = (引数) => { return 値; }; でも関数を作れます
  • 本体が式 1 つなら { } と return を省略できます

1 行で終わる処理に、function と名前は重い

前のレッスンの関数宣言は、名前を付けて何度も呼ぶ処理のための書き方でした。ですが実際には、1 行で終わる小さな処理や、その場で他の関数に渡して使い捨てる処理がたくさん出てきます。そこに function とキーワードを書き、名前まで考えるのは大げさです。

そこで使うのが => を使うアロー関数です。同じ処理を並べてみます。

JavaScript

// 関数宣言 function yearLabel(year) { return year + " 年公開"; } // アロー関数 const yearLabelArrow = (year) => { return year + " 年公開"; };

やっていることは同じで、function が消え、引数と本体のあいだに => が入りました。アロー関数は名前を持ちません。名前を付けたいときは const の変数に入れます。だから末尾にセミコロンが付きます。これは関数の定義ではなく、代入文だからです。

本体が式 1 つなら、{ } ごと消せる

アロー関数の本領は省略にあります。段階を追って短くします。

JavaScript

// 1. 省略なし const label1 = (year) => { return year + " 年公開"; }; // 2. 本体が return 1 つだけなら、{ } と return を省略できる const label2 = (year) => year + " 年公開"; // 3. 引数が 1 つなら丸カッコも省略できる const label3 = year => year + " 年公開";

2 番目を式本体と呼びます。{ } を外すと、矢印の右側に書いた式の結果が、そのまま戻り値になります。ここでの return は省略できるのではなく、書いてはいけません。書くと構文エラーです。

状況書き方
引数なし() => 値。丸カッコは省略できない
引数 1 つ(v) => 値 または v => 値
引数 2 つ以上(a, b) => 値。丸カッコは必須
本体が式 1 つreturn を書かない
本体が複数行{ } で囲み、return を書く

{ } を書いたら return が要る、書かなければ return は要らない。この対応で覚えると混乱しません。

定義より前の行では呼べない

関数宣言とアロー関数には、はっきりした違いが 1 つあります。

JavaScript

console.log(hoisted(2026)); // 動く function hoisted(year) { return year + " 年公開"; } console.log(notHoisted(2026)); // エラーになる const notHoisted = (year) => year + " 年公開";

関数宣言はファイルが読み込まれた時点で使える状態になるので、定義より前の行からでも呼べます。アロー関数は const の変数なので、定義の行に届くまで使えません。実務では定義してから使うのが基本なので困る場面はほぼありませんが、このエラーの意味は分かるようにしておいてください。

解説

省略記法は短く書くためではなく、意図がすぐ読めるようにするための道具です。1 行に詰め込みすぎて読み解くのに 10 秒かかるなら、3 行に分けたほうが良いコードです。

よくある間違い

  • { } を書いたのに return を忘れる — 式本体から書き直したときに起きます。エラーは出ず、undefined が返ります
  • 末尾のセミコロンを忘れる — 関数宣言の } の後ろには要りませんが、アロー関数は代入文なので必要です

要件

  1. const と アロー関数 (=>) で greet を定義すること
  2. 引数 name を 1 つ受け取ること
  3. 文字列 こんにちは、 + name + さん を返すこと
  4. name が空文字列でも、そのまま連結した文字列を返すこと

入出力例

greet("山田 太郎") → "こんにちは、山田 太郎さん" greet("鈴木 花子") → "こんにちは、鈴木 花子さん" greet("A") → "こんにちは、Aさん" greet("") → "こんにちは、さん"

ヒント

関数宣言をアロー関数に直す手順は、function を消して const 名前 = に置き換え、引数の後ろに => を足すだけです

本体が return 1 つだけなら波括弧と return を外して `const greet = (name) => 式;` と書けます

アロー関数は代入文なので、末尾のセミコロンを忘れないでください

生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/05/19·更新 2026/08/26

関連レッスン

  • デフォルト引数

    引数が渡されなかったときに使う既定値をあらかじめ決めておく書き方を学びます。肩書きが未入力でもプロフィールが崩れないようにします。

  • 早期 return でネストを浅くする

    関数の冒頭で不正な入力をはじいてしまい、本体を浅いインデントで書く書き方を学びます。ガード節、または早期 return と呼ばれます。

  • 変数のスコープ

    宣言した変数がどこから見えるかという範囲について学びます。関数の外を汚してしまうバグを、ローカル変数に直して防ぎます。

  • コールバック関数

    他の関数に引数として渡し、あとで呼んでもらう関数について学びます。第9章でボタンのクリックに反応させるとき、この仕組みがそのまま使われます。

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • 関数処理に名前を付けて再利用できる単位
  • 処理計算や代入を表す長方形
  • アロー関数=> で書く軽量な関数。this を継承する
  • 引数位置引数=順番で渡す。
  • 変数データに名前をつけて参照する仕組み
  • 戻り値呼び出し元への返答を表す点線矢印
main.js
学習モード
エディタを読み込んでいます

メモ

アロー関数

⌘S で保存