JavaScript数组引用的操作
javascript
数组存储对象都是存地址的,所以浅复制会导致 a 和 b 指向同一块内存地址;
var a=[1,2]
var b=a
则b存储的地址指向了数组[1,2],
如果直接对数组操作,push,pop等,则a,b都会发生变化,因为a和b都指向了堆中的这个数组。
但是假如这样操作,b=[3,4];这个时候发现a没有变化还是[1,2];这是为什么,其实这个不同于刚才的操作,
因为b=[3,4],【】是JavaScript的语法糖,new Array();相当于给b重新开辟了堆空间,所以b的地址指向了新的堆地址,而a还是指向之前的地址,所以a和b变得没有关系了
地址存储在栈里面,但是数组内容存储在堆里面,