-
我们知道了,基本数据类型和复杂数据类型在存储上是有区别的
-
那么他们在赋值之间也是有区别的
基本数据类型之间的赋值
var num = 10
var num2 = numnum2 = 200
console.log(num) // 10
console.log(num2) // 200
-
相当于是把
num
的值复制了一份一摸一样的给了num2
变量 -
赋值以后两个在没有关系
复杂数据类型之间的赋值
var obj = {
name: 'Jack'
}
var obj2 = objobj2.name = 'Rose'
console.log(obj.name) // Rose
console.log(obj2.name) // Rose
-
因为复杂数据类型,变量存储的是地址,真实内容在 堆空间 内存储
-
所以赋值的时候相当于把
obj
存储的那个地址复制了一份给到了obj2
变量 -
现在 obj 和
obj2
两个变量存储的地址一样,指向一个内存空间 -
所以使用
obj2
这个变量修改空间内的内容,obj
指向的空间也会跟着改变了