JavaScript | 「値渡し」と「参照渡し」

Java
スポンサーリンク

主な内容の要点

1. 値渡し(プリミティブ型)

  • 対象:数値、文字列、真偽値、nullundefined、シンボル など
  • 特徴
    • 変数に代入すると「値そのもの」がコピーされる
    • 別の変数に代入しても、それぞれ独立した値を持つ
    • 片方を変更しても、もう片方には影響しない

例:

let a = 10;
let b = a;  // b に 10 がコピーされる
b = 20;
console.log(a); // 10(影響なし)
JavaScript

2. 参照渡し(オブジェクト型)

  • 対象:配列、オブジェクト、関数、正規表現 など
  • 特徴
    • 変数には「値そのもの」ではなく「値が保存されている場所(参照)」が入る
    • 別の変数に代入すると、同じ場所を指すことになる
    • 片方を変更すると、もう片方にも影響が出る

例:

let a = [10, 20];
let b = a;   // b も同じ配列を参照
b[0] = 50;
console.log(a); // [50, 20](a も変わる!)
JavaScript

3. ポイントまとめ

  • プリミティブ型 → 値そのものをコピー(安全に独立)
  • オブジェクト型 → 参照をコピー(共有されるので注意)
  • 配列やオブジェクトを扱うときは「どの変数が同じものを参照しているか」を意識することが大事

👉 初心者がよくハマるのは「配列やオブジェクトをコピーしたつもりが、実は同じものを触っていた」というケースです。
「値渡し」と「参照渡し」の違いを理解すると、バグを減らせます。

タイトルとURLをコピーしました