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變得沒有關系了
地址存儲在棧里面,但是數組內容存儲在堆里面,