LS&TK's SE Life Log

SE備忘録

JavaScript 基本型と参照型

基本型と参照型

JavaScriptでは基本型(string, num, boolean, null, undefined)と、参照型(object)があります。2つの間では代入の挙動が以下のとおり大きく変わります。

// 基本型の代入
var x = 1;
var y = x;
x = 2;
console.log(x); // 2
console.log(y); // 1

// 参照型の代入
var arry1 = [0, 1, 2];
var arry2 = arry1;
arry1[0] = 3;
console.log(arry1); // 3, 1, 2
console.log(arry2); // 3, 1, 2

基本型はJavaやってた自分からすればすんなり理解できます。 var y = xで1がyに代入され、その後に2がxに代入される流れ。

でも参照型はJavaやってたら頭に?が浮かぶと思います。 参照型は、代入時、あくまでも参照先のアドレスが代入されるだけで、 実際の値が代入されるわけではないのです。 上のコードの場合は、arry1もarry2も、同じ[0, 1, 2]という オブジェクトを参照していて、そこの値を変えた、という流れです。