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]
という
オブジェクトを参照していて、そこの値を変えた、という流れです。