Discuss / JavaScript / JavaScript疑问

JavaScript疑问

Topic source
var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
var aCopy = arr.slice();
aCopy; // ['A', 'B', 'C', 'D', 'E', 'F', 'G']
aCopy === arr; // false

这个为什么不全等

rainux

#2 Created at ... [Delete] [Delete and Lock User]

首先这是一个浅拷贝。

其次是浅拷贝,基本数据类型拷贝的是值;复杂数据类型拷贝的内存地址。

上述的复杂数据类型,内存地址是拷贝的,但和原数据不是同一个了,只是指向同一块堆内存数据;

而对于赋值来说(let aCopy = arr)内存地址也赋值给了aCopy,相当于还是同一个内存地址;

全等指的是内存地址相同。


  • 1

Reply