- DAY 4:Arrow Function 前半 ― 「そもそも何者か」をつかむ
- Arrow Functionとは何か
- 基本構文をテンプレートで覚える
- 引数の基本イメージ(前半の段階で押さえておくこと)
- 戻り値の基本イメージ(“結果を返す出口”)
- 1行で書くための“予告”としてのイメージ
- 関数を変数に保存する感覚(前半のゴール)
- 前半のまとめと、中盤・後半へのつながり
- DAY 4:Arrow Function 中盤 ― 「使いこなすための核心部分」
- Arrow Functionと基本構文の再確認(中盤の土台)
- 引数:丸括弧のルールと「1つだけのときの省略」
- 戻り値:returnと「結果を返す関数」の考え方
- 1行で書く方法:暗黙のreturnという“必殺技”
- 関数を変数に保存する:Arrow Functionの“標準スタイル”
- 中盤のまとめと、前半・後半とのつながり
- DAY 4:Arrow Function 後半 ― 「実務で使える形」に仕上げる
- 前半・中盤の復習から後半への橋渡し
- 複数行の処理:Arrow Functionで“ちゃんとしたロジック”を書く
- 関数を変数に保存する:再利用と安全性の視点
- Reactコンポーネント内でのArrow Functionの使い方
- セキュリティ・安全性の観点からの一言
- DAY 4(後半)のまとめ ― Arrow Functionを「Reactの武器」にする
DAY 4:Arrow Function 前半 ― 「そもそも何者か」をつかむ
DAY 4では、Reactで非常によく使われる Arrow Function(アロー関数) を扱います。 前半では、「Arrow Functionとは何か」「基本構文」「引数と戻り値のイメージ」を、従来の function と比較しながら、プログラミング初心者向けにかみ砕いて説明していきます。
Arrow Functionとは何か
関数の“新しい書き方”だと理解する
まず押さえてほしいのは、Arrow Functionは 「新しい種類の関数」ではなく、“関数の新しい書き方” だということです。 やっていることは従来の関数と同じですが、書き方がコンパクトで、Reactとの相性がとても良いです。
従来の書き方と並べてみます。
// 従来の関数定義
function add(x, y) {
return x + y;
}
// Arrow Functionで書いた場合
const add = (x, y) => {
return x + y;
};
JavaScriptどちらも「2つの数を足し算する関数」です。 違いは次の2点です。
functionキーワードの代わりに=>を使っている- 関数を「変数に代入する形」で書いている(
const add = ...)
この「関数を変数に保存する」というスタイルが、Reactで非常によく使われるため、Arrow Functionが標準的な書き方になっています。
基本構文をテンプレートで覚える
まずは“型”を覚えてしまう
Arrow Functionの基本構文は、次のテンプレートで覚えると分かりやすいです。
const 関数名 = (引数1, 引数2, ...) => {
// 実行したい処理
return 戻り値;
};
JavaScriptこの形に、具体的な処理を当てはめていきます。
例:挨拶を表示する関数
const greet = (name) => {
console.log(`こんにちは、${name}さん!`);
};
greet('佐藤'); // こんにちは、佐藤さん!
JavaScriptここで起きていることを、ステップで整理します。
- 関数を変数に保存しているjs
const greet = (name) => { ... };greetという変数に、「名前を受け取って挨拶を表示する関数」を保存しています。 - 引数を受け取っているjs
(name) => { ... }nameが引数で、「誰に挨拶するか」を表しています。 - 関数を呼び出しているjs
greet('佐藤');ここで、greetに保存されている関数が実行され、nameに'佐藤'が渡されます。
このように、Arrow Functionは「関数を変数として扱う」スタイルとセットで理解すると、スッと頭に入ってきます。
引数の基本イメージ(前半の段階で押さえておくこと)
丸括弧の中に“外から渡したい値”を書く
Arrow Functionの引数は、従来の関数と同じように 丸括弧 () の中に書きます。
const add = (x, y) => {
return x + y;
};
console.log(add(2, 3)); // 5
JavaScriptx,yが引数add(2, 3)のとき、x = 2,y = 3が渡されます
ここで重要なのは、「毎回変わる値は引数にする」という考え方です。
- 毎回同じ処理:足し算する
- 毎回変わる値:足し算したい2つの数
この「毎回変わる値」を引数として外から渡すことで、同じ関数を何度も再利用できるようになります。
引数がない場合の書き方
引数がない場合は、必ず空の丸括弧 () を書きます。
const sayHello = () => {
console.log('こんにちは!');
};
sayHello(); // こんにちは!
JavaScript()の中に何も書かれていない → 引数なし- 呼び出し側も
sayHello()のように、引数を渡さずに実行します
戻り値の基本イメージ(“結果を返す出口”)
returnで「結果を外に渡す」
Arrow Functionでも、戻り値は従来の関数と同じように return で返します。
const double = (number) => {
const result = number * 2;
return result;
};
const value = double(5);
console.log(value); // 10
JavaScriptここで起きていることを分解すると、
double(5)を呼び出すと、numberに5が渡されるresultにnumber * 2(つまり10)が代入されるreturn result;によって、10が戻り値として返される- 呼び出し側の
valueに、その戻り値10が入る
という流れになります。
戻り値がない関数との違い
戻り値を返さない関数も書けます。
const logMessage = (message) => {
console.log(message);
};
logMessage('テスト'); // テスト
JavaScriptこの場合、return がないので、戻り値は undefined になります。 「結果を他の処理に渡したいとき」は return を使い、「画面表示やログ出力だけしたいとき」は return を省略する、という使い分けを意識すると整理しやすいです。
1行で書くための“予告”としてのイメージ
前半では詳しくは踏み込みませんが、Arrow Functionの大きな特徴として 「短い処理なら1行で書ける」 という点があります。
const double = (number) => number * 2;
JavaScript{}を書いていないreturnも書いていない- それでも「
number * 2の結果」が戻り値として返される
この書き方は「暗黙のreturn」と呼ばれ、中盤でじっくり扱います。 前半の段階では、「Arrow Functionは短く書けるんだな」というイメージだけ持っておいていただければ十分です。
関数を変数に保存する感覚(前半のゴール)
「関数=値」として扱う世界への入り口
Arrow Functionの基本構文は、次のように「関数を変数に保存する」形になっています。
const add = (x, y) => {
return x + y;
};
const result = add(3, 4);
console.log(result); // 7
JavaScriptここで重要なのは、
addは「数値」ではなく「関数」という“値”であるadd(3, 4)と書くことで、その関数を実行している- 実行結果(戻り値)を
resultに代入している
という構造です。
JavaScriptでは、関数も「値」として扱えるため、
- 変数に代入できる
- 他の関数に引数として渡せる
- 配列やオブジェクトの中に入れられる
という柔軟な使い方ができます。 Reactでは、この「関数を値として扱う」スタイルが当たり前に使われるので、Arrow Functionの書き方に慣れておくことがとても大切です。
前半のまとめと、中盤・後半へのつながり
前半では、
- Arrow Functionは「関数の新しい書き方」であり、やっていることは従来の関数と同じであること
- 基本構文:
const 関数名 = (引数) => { 処理; return 戻り値; };というテンプレートで書けること - 引数は
()の中に書き、毎回変わる値を外から渡すための仕組みであること - 戻り値は
returnで返し、結果を他の処理に渡せるようになること - 関数を変数に保存することで、「関数=値」として扱える世界に入っていくこと
を確認しました。
この土台の上に、中盤では「1行で書く方法(暗黙のreturn)」と「引数の省略ルール」 を、 後半では「複数行の処理」と「Reactコンポーネント内での実践的な使い方」 を重ねていくことで、Arrow Functionが「Reactで戦える武器」として自然に使えるようになっていきます。
DAY 4:Arrow Function 中盤 ― 「使いこなすための核心部分」
DAY 4の中盤では、Arrow Functionを実際に使いこなすうえで重要になる 引数・戻り値・1行で書く方法 を、ステップバイステップで深掘りしていきます。 前半で「Arrow Functionとは何か」「基本構文」を押さえたうえで、ここからは「どう書くと読みやすく・再利用しやすくなるか」という実践的な視点に入っていきます。
Arrow Functionと基本構文の再確認(中盤の土台)
従来のfunctionとの対応を頭に置いたまま進める
まず、中盤の説明に入る前に、Arrow Functionの基本構文をもう一度確認しておきます。
// 従来の関数定義
function add(x, y) {
return x + y;
}
// Arrow Functionで書いた場合
const add = (x, y) => {
return x + y;
};
JavaScriptやっていることは同じですが、Arrow Functionでは、
functionの代わりに=>を使う- 関数を「変数に保存する形」で書く(
const add = ...)
というスタイルになります。 この対応関係を頭に置いたまま、引数・戻り値・1行で書く方法を見ていくと、理解がスムーズになります。
引数:丸括弧のルールと「1つだけのときの省略」
基本:丸括弧の中に引数を書く
Arrow Functionの引数は、従来の関数と同じように 丸括弧 () の中に書きます。
const add = (x, y) => {
return x + y;
};
console.log(add(2, 3)); // 5
JavaScriptここでは、
x,yが引数add(2, 3)と呼び出したとき、x = 2,y = 3が渡されます
という流れになっています。
このとき意識してほしいのは、「毎回変わる値は引数にする」という考え方です。
- 毎回同じ処理:2つの数を足し算する
- 毎回変わる値:足し算したい2つの数
この「毎回変わる値」を引数として外から渡すことで、同じ関数を何度も再利用できるようになります。
引数が1つだけのときの省略ルール
Arrow Functionには、引数が1つだけのときに丸括弧を省略できるというルールがあります。 これはReactのコードで非常によく使われるので、ここでしっかり押さえておきます。
const double = number => {
return number * 2;
};
console.log(double(5)); // 10
JavaScript- 引数が1つ →
number => { ... }のように書けます - 引数が0個 → 必ず
()が必要です
const sayHello = () => {
console.log('こんにちは!');
};
JavaScriptこの省略ルールは、配列操作などで特に威力を発揮します。
const numbers = [1, 2, 3];
const doubled = numbers.map(n => n * 2);
console.log(doubled); // [2, 4, 6]
JavaScriptここでは n => n * 2 が「引数が1つだけのArrow Function」です。 Reactのコードを読むときに、「この n は1つだけの引数なんだな」とすぐに認識できるようになると、コードの理解がかなり楽になります。
戻り値:returnと「結果を返す関数」の考え方
複数行の処理ではreturnを書くのが基本
Arrow Functionでも、戻り値は従来の関数と同じように return で返します。 まずは複数行の処理を書く基本形から確認します。
const double = (number) => {
const result = number * 2;
return result;
};
const value = double(5);
console.log(value); // 10
JavaScriptここで起きていることを分解すると、
double(5)を呼び出すと、numberに5が渡されるresultにnumber * 2(つまり10)が代入されるreturn result;によって、10が戻り値として返される- 呼び出し側の
valueに、その戻り値10が入る
という流れになります。
この「戻り値を返す関数」という考え方は、Reactコンポーネントにも直結します。 Reactコンポーネントは「UI(JSX)を戻り値として返す関数」として定義されるため、return の感覚に慣れておくことがとても重要です。
戻り値がない関数との違い
戻り値を返さない関数も書けます。
const logMessage = (message) => {
console.log(message);
};
logMessage('テスト'); // テスト
JavaScriptこの場合、return がないので、戻り値は undefined になります。 「結果を他の処理に渡したいとき」は return を使い、「画面表示やログ出力だけしたいとき」は return を省略する、という使い分けを意識すると整理しやすいです。
1行で書く方法:暗黙のreturnという“必殺技”
1行Arrow Functionの基本形
Arrow Functionの中盤で最も重要なのが、「1行で書くときに return を省略できる」というルールです。 これによって、Reactのコードが非常にコンパクトになります。
const double = (number) => number * 2;
console.log(double(5)); // 10
JavaScriptここでは、
{}を書いていないreturnも書いていない- それでも「
number * 2の結果」が戻り値として返される
という挙動になっています。 このような書き方を「暗黙のreturn」と呼びます。
1行Arrow Functionのテンプレート
よく使う形は次のテンプレートで覚えておくと便利です。
const 関数名 = (引数) => 戻り値の式;
JavaScript具体例をいくつか見てみます。
const add = (x, y) => x + y;
const isEven = (number) => number % 2 === 0;
const greet = (name) => `こんにちは、${name}さん!`;
JavaScriptaddは「2つの数を足し算する関数」isEvenは「偶数かどうかを判定する関数」greetは「挨拶文を作る関数」
いずれも、1行で「何をしているか」がはっきり分かる書き方になっています。
配列操作と1行Arrow Function
Reactでは、配列を map してコンポーネントを並べる場面が非常に多いです。 そのときに、1行Arrow Functionが大活躍します。
const numbers = [1, 2, 3];
const doubled = numbers.map((n) => n * 2);
console.log(doubled); // [2, 4, 6]
JavaScriptここでは、
(n) => n * 2が1行Arrow Functionn * 2の結果が暗黙的に戻り値になります
このように、「短い処理は1行で書く」というスタイルに慣れておくと、Reactのコードがかなり読みやすくなります。
関数を変数に保存する:Arrow Functionの“標準スタイル”
関数=値として扱う感覚を固める
Arrow Functionは、「関数を変数に保存する」スタイルと非常に相性が良いです。 中盤では、この感覚をしっかり固めておきます。
const add = (x, y) => x + y;
const isEven = (number) => number % 2 === 0;
const greet = (name) => `こんにちは、${name}さん!`;
console.log(add(2, 3)); // 5
console.log(isEven(4)); // true
console.log(greet('佐藤')); // こんにちは、佐藤さん!
JavaScriptここで重要なのは、
addという変数に「足し算する関数」が入っているisEvenという変数に「偶数判定する関数」が入っているgreetという変数に「挨拶文を作る関数」が入っている
という構造です。
JavaScriptでは、関数も「値」として扱えるため、
- 変数に代入できる
- 他の関数に引数として渡せる
- 配列やオブジェクトの中に入れられる
という柔軟な使い方ができます。 Reactでは、イベントハンドラや map / filter などで「関数を渡す」場面が多いため、この感覚が非常に重要になります。
中盤のまとめと、前半・後半とのつながり
DAY 4の中盤では、
- Arrow Functionの基本構文を、従来の
functionと対応させて整理したこと - 引数は
()の中に書き、1つだけなら括弧を省略できること - 複数行の処理では
{}を使い、returnを明示的に書く必要があること - 1行で書く場合は「暗黙のreturn」によって
returnを省略できること const 関数名 = (引数) => 式;という1行Arrow FunctionのテンプレートがReactで頻出すること- 関数を変数に保存することで、関数を「値」として扱えるようになること
を確認しました。
前半で学んだ「Arrow Functionとは何か」「基本構文」の土台の上に、 中盤で「引数・戻り値・1行で書く方法」という“使いこなしの核心”を重ねることで、 Reactのコードに出てくるArrow Functionが、ぐっと読みやすく・書きやすくなっていきます。
後半では、この知識を使って 複数行の処理を含むArrow Functionの設計 や、 Reactコンポーネント内での実践的な使い方・注意点 を扱い、Arrow Functionを「Reactで戦える武器」として仕上げていきます。
DAY 4:Arrow Function 後半 ― 「実務で使える形」に仕上げる
DAY 4の後半では、これまで前半・中盤で学んだ Arrow Functionの基本構文・引数・戻り値・1行で書く方法 を土台にして、 より実務に近い形で使えるようにするための 複数行の処理 と 関数を変数に保存する考え方(再利用) を深掘りしていきます。
Reactでは、「ちょっとした処理」から「コンポーネントのロジック」まで、Arrow Functionが幅広く使われます。 後半では、単なる文法知識ではなく、「どう書くと読みやすく、安全で、再利用しやすいか」という視点で整理していきます。
前半・中盤の復習から後半への橋渡し
前半で押さえたこと(ざっくり)
- Arrow Functionは「関数の新しい書き方」であり、やっていることは従来の
functionと同じであること - 基本構文は
const 関数名 = (引数) => { 処理; return 戻り値; };というテンプレートで書けること - 引数は
()の中に書き、毎回変わる値を外から渡すための仕組みであること - 戻り値は
returnで返し、結果を他の処理に渡せること
中盤で押さえたこと(ざっくり)
- 引数が1つだけのときは
number => { ... }のように括弧を省略できること - 複数行の処理では
{}を使い、returnを明示的に書く必要があること - 1行で書く場合は「暗黙のreturn」によって
returnを省略できること 例:const double = (number) => number * 2; const 関数名 = (引数) => 式;という1行Arrow FunctionのテンプレートがReactで頻出すること- 関数を変数に保存することで、関数を「値」として扱えるようになること
この土台の上に、後半では 複数行の処理を含むArrow Functionの設計 と Reactコンポーネント内での実践的な使い方・再利用の考え方 を重ねていきます。
複数行の処理:Arrow Functionで“ちゃんとしたロジック”を書く
複数行のArrow Functionの基本形
複数行の処理を書くときは、必ず {}(波括弧)を使い、必要に応じて return を書きます。
const calcTaxIncluded = (price, taxRate) => {
const taxAmount = price * taxRate;
const total = price + taxAmount;
return total;
};
const taxRate = 0.1;
console.log(calcTaxIncluded(1200, taxRate)); // 1320
JavaScriptここでやっていることをステップで整理すると、
calcTaxIncluded(1200, 0.1)を呼び出すと、price = 1200,taxRate = 0.1が渡されます。taxAmountにprice * taxRate(120)が代入されます。totalにprice + taxAmount(1320)が代入されます。return total;によって、1320が戻り値として返されます。
このように、複数行のArrow Functionは「中でちゃんと計算・処理をして、最後に結果を返す関数」として設計できます。
暗黙のreturnとの違いを意識する
1行で書くArrow Functionとの違いを、はっきり意識しておくことが重要です。
// 1行(暗黙のreturn)
const double = (number) => number * 2;
// 複数行(明示的なreturn)
const doubleWithLog = (number) => {
console.log('2倍にします');
return number * 2;
};
JavaScript- 1行の場合 →
{}を省略し、returnも省略できる(暗黙のreturn) - 複数行の場合 →
{}を使い、returnを明示的に書く必要がある
「処理が1行で書けるかどうか」が、暗黙のreturnを使うかどうかの判断基準になります。 ログ出力や条件分岐などが入ってくると、自然と複数行になり、return を書く形になります。
関数を変数に保存する:再利用と安全性の視点
関数を“名前付きの部品”として扱う
Arrow Functionは、関数を変数に保存するスタイルと非常に相性が良いです。 これは、関数を「名前付きの部品」として扱うための基本的な考え方です。
const add = (x, y) => x + y;
const isEven = (number) => number % 2 === 0;
const greet = (name) => `こんにちは、${name}さん!`;
console.log(add(2, 3)); // 5
console.log(isEven(4)); // true
console.log(greet('佐藤')); // こんにちは、佐藤さん!
JavaScriptここでは、
addという変数に「足し算する関数」が入っているisEvenという変数に「偶数判定する関数」が入っているgreetという変数に「挨拶文を作る関数」が入っている
という構造になっています。
再利用のメリット
関数を変数に保存しておくと、次のようなメリットがあります。
- 同じ処理を何度も使い回せる → コードの重複が減り、保守性が上がります。
- 意味のある名前を付けられる →
add,isEven,greetなど、処理の意図が一目で分かるようになります。 - テストしやすくなる → 個々の関数を単体でテストできるようになります。
Reactでは、イベントハンドラやロジックをArrow Functionで定義し、 コンポーネント内で何度も呼び出したり、他のコンポーネントに渡したりすることがよくあります。
Reactコンポーネント内でのArrow Functionの使い方
イベントハンドラとしてのArrow Function
Reactでは、ボタンのクリック時の処理などをArrow Functionで定義することが多いです。
function Counter() {
const [count, setCount] = useState(0);
const handleClick = () => {
setCount(count + 1);
};
return (
<button onClick={handleClick}>
現在のカウント: {count}
</button>
);
}
JSXここで handleClick は、
- Arrow Functionで定義された「イベントハンドラ」
- 変数
handleClickに保存されている関数 onClickに渡される「関数という値」
という役割を持っています。
この構造は、DAY 4で学んだすべての要素が組み合わさっています。
- Arrow Functionの基本構文:
const handleClick = () => { ... }; - 引数なし:
() => { ... } - 複数行の処理:
setCount(count + 1);というロジック - 関数を変数に保存:
handleClickにイベントハンドラを保存
配列とArrow Function(Reactでの典型パターン)
Reactでは、配列を map してコンポーネントを並べる場面が非常に多いです。
const items = ['A', 'B', 'C'];
function ItemList() {
return (
<ul>
{items.map((item) => (
<li key={item}>{item}</li>
))}
</ul>
);
}
JSXここで (item) => ( <li key={item}>{item}</li> ) がArrow Functionです。
- 引数:
item - 戻り値:
<li key={item}>{item}</li>というJSX - 1行(実質1つの式)なので、暗黙のreturnが使われています
このように、Arrow Functionは「配列の各要素に対して何をするか」を表現するのに非常に向いています。
セキュリティ・安全性の観点からの一言
Arrow Functionそのものは、セキュリティ上特別な危険を生むものではありませんが、 「何を引数として受け取り、何を戻り値として返すか」 を明確に設計することは、安全なコードを書くうえで重要です。
- 不要な引数を受け取らない
- 戻り値の型や意味を統一する
- 外部から渡される値(ユーザー入力など)をそのまま危険な処理に渡さない
といった基本的なルールを、Arrow Functionでも意識しておくと、 Reactアプリ全体の安全性・信頼性が高まります。
DAY 4(後半)のまとめ ― Arrow Functionを「Reactの武器」にする
DAY 4の後半では、
- 複数行の処理を含むArrow Functionの書き方 →
{}を使い、returnを明示的に書くことで、ちゃんとしたロジックを表現できること - 1行Arrow Functionとの違い(暗黙のreturn) → 短い処理は1行で、複雑な処理は複数行で書き分けること
- 関数を変数に保存することで、関数を「名前付きの部品」として再利用できること
- Reactコンポーネント内で、イベントハンドラや配列操作にArrow Functionが自然に使われること
- セキュリティ・安全性の観点からも、「引数と戻り値を明確に設計する」ことが重要であること
を確認しました。
前半・中盤・後半を通して、Arrow Functionは単なる「新しい記法」ではなく、 Reactで読みやすく・安全で・再利用しやすいコードを書くための基礎ツール であることが見えてきたと思います。
このあとは、Arrow Functionを使った配列操作(map / filter / reduce)や、 より複雑なReactコンポーネントのロジックに踏み込んでいくことで、 モダンJavaScriptとReactの世界がさらに立体的に見えてくるはずです。
