

中嶋悟
名前:中嶋 悟(なかじま さとる) ニックネーム:サトルン 年齢:28歳 性別:男性 職業:会社員(IT系メーカー・マーケティング部門) 通勤場所:東京都千代田区・本社オフィス 通勤時間:片道約45分(電車+徒歩) 居住地:東京都杉並区・阿佐ヶ谷の1LDKマンション 出身地:神奈川県横浜市 身長:175cm 血液型:A型 誕生日:1997年5月12日 趣味:比較記事を書くこと、カメラ散歩、ガジェット収集、カフェ巡り、映画鑑賞(特に洋画)、料理(最近はスパイスカレー作りにハマり中) 性格:分析好き・好奇心旺盛・マイペース・几帳面だけど時々おおざっぱ・物事をとことん調べたくなるタイプ 1日(平日)のタイムスケジュール 6:30 起床。まずはコーヒーを淹れながらニュースとSNSチェック 7:00 朝食(自作のオートミールorトースト)、ブログの下書きや記事ネタ整理 8:00 出勤準備 8:30 電車で通勤(この間にポッドキャストやオーディオブックでインプット) 9:15 出社。午前は資料作成やメール返信 12:00 ランチはオフィス近くの定食屋かカフェ 13:00 午後は会議やマーケティング企画立案、データ分析 18:00 退社 19:00 帰宅途中にスーパー寄って買い物 19:30 夕食&YouTubeやNetflixでリラックスタイム 21:00 ブログ執筆や写真編集、次の記事の構成作成 23:00 読書(比較記事のネタ探しも兼ねる) 23:45 就寝準備 24:00 就寝
functionとアロー関数の違いを理解する意味とポイント
こんにちは!プログラミングの勉強を始めるとき、まず知っておきたいのが「function」と「アロー関数」の違いです。JavaScript には関数を定義する方法が2つ以上あり、それぞれに特徴があります。
この違いを知っておくと、コードの書き方がきれいに整理でき、後でバグが少なくなります。特に web アプリのように複雑な場面では、どの書き方を選ぶべきか判断する力が求められます。
本記事では、基本的な違いから実際の挙動の違い、そして「いつどちらを使うべきか」の実践的なコツまでを、やさしい日本語で解説します。中学生にも伝わる言い方を心がけていますので、コーディングの基礎がまだ少ししかなくても大丈夫です。
ポイントとして覚えてほしいのは、実装の仕組みと使い分けの目的です。これを押さえるだけで、長いコードも読みやすく、修正もしやすくなります。
基本の違いを押さえる—この2つは何が違うのか
まず大事なのは、関数を「定義する syntax(書き方)」が違うことです。function を使うと「function 名(引数){...}」の形で定義しますが、アロー関数は「引数 => 式または文」を使います。この違いだけでも、実は動きがかなり変わります。
特に覚えておきたいのは、this の扱いと、新しく this を束縛する機能が必要なときの使い分けです。例えば object のメソッドを定義するとき、アロー関数を使うとそのメソッドが参照する this は外側のスコープの this になります。一方、通常の function で書くと、そのメソッドが呼ばれたときの「呼び出し側」によって this が決まります。こうした違いは、コードが思い通りに動くかどうかに直結します。
また、hoisting(巻き上げ)の違いも重要です。function 名の宣言はファイルの先頭で実在している扱いになり、後から呼び出しても問題ありません。一方、アロー関数を変数に代入して定義するケースは、代入する前には存在しません。これを理解していないと、先に呼び出してエラーになることがあります。さらに、arguments オブジェクトの有無、prototypeの有無、名前の扱いなども微妙に異なる点として挙げられます。
挙動の違いと注意点—this, arguments, prototype のポイント
この章では、実務でのつまずきポイントを具体的に見ていきます。
この二つは「同じ関数」を作る道具のように見えますが、内部の挙動は結構異なります。例えば、setTimeout のコールバックを例にすると、function ではコールバック内の this が呼び出し元に応じて変わるケースが多いです。対して、アロー関数では this が lexical(外側のスコープに固定)されることが多く、意図した挙動を得やすい場面が増えます。これを活かす場面は「現在の文脈の this をそのまま使いたいとき」です。ただし、アロー関数は new でコンストラクトできない、arguments オブジェクトを持たない、という制約も同時にあるため、ユースケースをよく考えることが大切です。実際のコードで見比べてみると、結論としては「機能の強さよりも使い勝手と安全性を重視する場面が多い」ことが分かります。
実務での使い分けガイド—いつどちらを選ぶべきか
日常のプログラミングでの実践的なルールを、いくつかの場面別にまとめました。
1) コールバックや短い関数、イベント処理など、this のバインディングを外部に任せたくないときはアロー関数が便利です。
2) オブジェクトのメソッドとして、自身の this を使って何かを操作する必要がある場合は従来の function を使うと安全です。
3) コンストラクタとしてオブジェクトを作る場合、new を使ってインスタンスを作る場合は function 宣言や function 式を選ぶべきです。
4) 名寄せ(スタックトレースの見やすさ)を考えるなら、関数名を明示する function を選ぶのが良いケースが多いです。
5) どちらを使うべきか迷うときは、「この関数が self の文脈を持つか」を最初の判断材料にすると良いです。
最後に、コードの可読性と保守性を最優先に考える習慣を身につけましょう。分かりやすい名前とコメント、そして一貫したスタイルが、長いプロジェクトの成功につながります。
「アロー関数って何が違うの?」と友だちに聞かれたときの、雑談風ミニ解説です。ミナとケンが昼休みに話しているイメージで進めます。ミナ「function とアロー、どっちが便利?」ケン「場面次第だよ。アローは this が固定されるから、コールバックには強い。だけど new で作るコンストラクトは無理だし、arguments も使えない。だからイベント処理には向くけど、オブジェクトのメソッドには不向きなことがある。」ミナ「なるほど。つまり、あなたに必要なのは this の束縛か、逆に自由度か、で選ぶんだね。」ケン「それと hoisting の話も大事。function 宣言は前もって使えるけど、アローを変数に代入する形は順番が大切。こんな風に、違いを知るとコードが頭の中で動くようになるんだ。」