プログラミングの勉強をしていると、
「プリミティブ型」「参照型」という言葉が出てきます。
「え、なにそれ?? むずかしそう…」
と思うかもしれませんが、大丈夫!
今日は ゲームの宝箱 と ロッカーの番号札 を使って
やさしく説明します!
🔷 1. プリミティブ型は「そのまんま宝物」
プリミティブ型は、箱を開けたら中身がそのまま入っている宝箱 みたいなもの。
例えば:
- 数字(1、100、-5 など)
- 文字(”こんにちは” など)
- true / false
- null
- undefined
など
📦 イメージ
宝箱(変数)を開けたら
→ 100 がそのまま入っている!
つまり、変数がそのまま「中身の値」を持っている 状態です。
🔷 2. 参照型は「番号札」
参照型は、ロッカーの「番号札」を持っているだけ みたいなもの。
番号札には、
「本物の荷物が入っているロッカーの場所」
が書いてあるだけ。
つまり、参照型は
「中身そのもの」ではなく、その場所(アドレス)を持っている のです。
参照型の例:
- 配列(Array)
- オブジェクト(Object)
- 関数(Function)
🔑 イメージ
変数にはロッカーの番号が入っているだけ
→ 本物の荷物(データ)はロッカーの中
🔷 3. 「コピー」するとどう違うの?
ここが一番大事です!
✨ プリミティブ型をコピーすると?
➡ 宝物そのものをコピーする
let a = 10;
let b = a;
b = 20;
console.log(a); // 10 のまま
a と b は別々の宝箱だから
片方を変えてももう片方は変わらない!
✨ 参照型をコピーすると?
➡ 番号札(ロッカーの場所)だけコピーされる
let a = [1, 2];
let b = a;
b.push(3);
console.log(a); // → [1, 2, 3] に変わってる!
理由は簡単。
a も b も
同じロッカーの番号札を持っているから
どっちから荷物を入れても
同じロッカーに入っちゃう!
🔷 4. まとめ(ここだけ覚えればOK!)
| 種類 | プリミティブ型 | 参照型 |
|---|---|---|
| 例 | 数字、文字、true/false など | 配列、オブジェクト |
| 中身は? | 値が直接入っている(宝物) | 場所が入っている(番号札) |
| コピーすると? | 全く別の値になる | 同じ場所を指すのでつながる |
- プリミティブ型 → 本物の宝物が入ってる箱
- 参照型 → 本物が入っているロッカーの番号札
このイメージができれば、
JavaScriptのデータのしくみがグッとわかりやすくなります!
