JavaScript/関数/Lesson 07
関数 — *再利用可能なコードブロック*
45分·theory
このチャプター
1/4
関数 — *再利用可能なコードブロック*
🎯 このレッスンを読んだら
このレッスンを最後まで読めば、以下の3つを自信を持って実践できます。
- ▸✅ 関数宣言 vs. 関数式 + ホイスティングの違い
- ▸✅ 引数のデフォルト値 + rest · spread の使い方
- ▸✅ 純粋関数 / 副作用 / 第一級関数の定義
学習目標をチェックリストとして持ち、すべて答えられるようになったらレッスンを閉じましょう。
関数を書く4つの方法
関数の本質
関数 = 入力を受け取り、処理して結果を返す再利用可能なコードブロック。JS では関数は第一級市民 (first-class citizen) — 変数と同様に扱えます。
4つの書き方
関数宣言 vs. アロー関数 — どちらを使う?
関数宣言:
- ▸ホイスティング(宣言前に使用可能)
- ▸独自の
thisを持つ - ▸
functionキーワードを使用
アロー関数:
- ▸ホイスティングなし(宣言前に使用不可)
- ▸周囲の
thisを使用(最大の違い) - ▸より短い構文
現場の合意: ほとんどの場面でアロー関数を使用。クラスメソッド・コンストラクタのみ通常の関数を使用。
引数のパターン
関数は値である
これが関数型プログラミングの基盤です。コールバック・高階関数・クロージャはすべてこの上に成り立っています。
純粋関数 (Pure Function) — 推奨パターン
純粋関数のメリット:
- ▸テストが容易 — 入出力の検証のみ
- ▸予測可能
- ▸並列処理が安全
- ▸キャッシュ可能(メモ化)
よくある落とし穴
1. return の書き忘れ:
2. アロー関数の this:
まとめ
- ▸アロー関数がモダンな標準
- ▸関数は値 — 渡す・返す・保存することができる
- ▸純粋関数が安全なパターン
- ▸デフォルト引数・rest・分割代入を積極的に活用する
⚡ 実際に試してみよう — 4つの関数 + デフォルト値 · rest
4つの関数の書き方と引数パターンを一度に実行して結果を比較してみましょう。
✏️ JS 코드
📟 コンソール出力
▶ 実行ボタンを押してください
⚠️ ブラウザのサンドボックスで実行 — console.log()のみ対応、alert/fetchは不可
🤖 AIへのプロンプト例
このレッスンの概念を理解すれば、AIに具体的に指示できます。曖昧な「直して」ではなく、語彙を持ったリクエスト — それがトークン節約の出発点です。
- ▸「この関数宣言をアロー関数に変換して、
thisバインディングの違いを確認して」 - ▸「この関数を純粋関数にリファクタリングして(副作用を除去して)」
- ▸「この関数に適切なデフォルト引数 + 分割代入を適用して」
なぜトークンが減るのか
概念を知らないと、AIの回答を受け取るたびに「それって何ですか?」と聞き直す必要があります。その「聞き直し」がトークンを消費します。概念を一度身につけておけば、会話が一度で完結します。