0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

関数も純粋な方がいいらしい #5

Last updated at Posted at 2025-08-17

📢 このシリーズについて

このシリーズは、React公式ドキュメント( https://ja.react.dev/ )を(できるだけ)全て読み、学んだことやコード例、自分なりの補足をまとめていくチャレンジの記録です。

目的

  • Reactの基礎〜応用を公式の正しい情報で体系的に理解する
  • 自分の言葉でアウトプットして知識を定着させる

このシリーズでは、ただ内容をなぞるのではなく、「自分がReactを使っていても気づかなかった事実や落とし穴」を重点的にまとめます。

読んだときに「へぇ、そうなんだ!」となったポイントは必ず記録します!

目次 - 本記事で取り扱う内容

  • 純粋性とは??関数に純粋とかあんの
  • 不純な関数がもたらす副作用

🗂 基本情報



📌 内容

JavaScript関数は大きく2種類に分けれるらしい。純関数とそれ以外だ。

今回はその純関数について学習した。

純粋性とは??関数に純粋とかあんの

純関数(pure function)は以下のような特徴を持つ関数をいう。

  • 自分が呼び出される前に存在していたものを変更しない。
  • 同じ入力をしたら同じ出力を返す。

Reactはすべてのコンポーネントを純関数として定義する前提。

ドキュメントではこれを「数式」で例えていた。

// 数式の例
y = x^2

// コードの例
function squared(x: number): number{
	return x * x
}

この数式とコードは同じ動作をする。どちらも同じ値を変数xに入れるといつでも同じ値が返却される。

不純な関数がもたらす副作用

純関数の定義にある「自分が呼び出される前に存在していたものを変更しない。」を満たさない場合、予期しない動作が生まれバグの原因になる。

これを先ほどの数式 “ y = x^2 “ に無理やり当てはめると、

  1. 1回目にx=2を入力値として呼び出した時は4が返される。
  2. 2回目にx=2を入力すると8が返される
  3. 3回目にx=2を入力すると1が返される

のようになる。意味不明な挙動できもい。

そりゃこんな挙動をする関数があればバグの温床になるな。

💡Reactを使うとたまに見る “ StrictMode “ は、不純な関数を検出する機能があるらしい。謎が解けた。

ここでいう “ 不純な関数 “ はその関数の外で定義されたもを変更してしまう。だが、関数内で定義した変数や配列、オブジェクトを関数内でいじるのは問題ないことが多い。これを “ ローカルミューテーション “ という。



🚀 宣伝コーナー

個人開発もやっています🍃

ぜひ一度触ってみてください!

1. CAN I DO THIS

📜概要

🌟 「この問題、私に解ける?」がすぐ分かる! 🌟

CAN I DO THIS は、問題(文章/画像)をポンっと入れるだけで、「解くのに必要な前提知識」を瞬時に可視化するツールです💡

🛡 前提知識がないまま無理に挑んで、時間と体力をムダに消耗…

そんな経験、もうしなくてOK。

必要な知識が足りているか、すぐ判断できます!

✨ 主な機能

  • 問題を貼るだけ → 必要知識リスト+学習ルート自動生成
  • 前提 → 派生が一目で分かる依存関係グラフ
  • 登録不要&無料(広告視聴で利用可能)

🔗 今すぐ試す

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?