Kのプログラミング勉強ブログ

プログラミング勉強中のKです。できるだけ簡潔に、勉強したことをブログに載せていこうと思います。

【Javascript】「参照渡し」「値渡し」について

Javascriptの「参照渡し」「値渡し」についてまとめてみた。

数値型とかオブジェクト型とか、今までごっちゃになってつかってたけど、今後はちゃんと使いわけよう。

結論

  • プリミティブ型 ⇨ 値渡し
  • オブジェクト型 ⇨ 参照渡し


プリミティブ型(基本型)

  • 文字列型
  • 数値型(一種類double型のみ)
  • ブーリアン
  • null型
  • undefined型(初期値を代入していない状態)
<script type="text/javascript">
	var test1 = 1;
	var test2 = test1;
	test2 = 5;

	console.log(test1); // 1
	console.log(test2); // 5
</script>

「メモリ領域のアドレス」ではなく「値」自体が代入されるので、test2とtest1は別物になる。これが値渡し。

オブジェクト型

  • 配列
  • 連想配列
  • 関数
  • その他、プリミティブ型以外
<script type="text/javascript">
	var test1 = [1];
	var test2 = test1;
	test2[0] = 5;

	console.log(test1); // 5
	console.log(test2); // 5
</script>

「メモリ領域のアドレス」が代入されるので、test2とtest1は同じオブジェクトとなる。これが参照渡し。