var a = [1,2];var b = [1,2,a];a=[3];打印b //[1,2,[1,2]]第一个问题:b为什么没有变?var a = [1,2];var b = [1,2,a];a[0]=3;打印b //[1,2,[3,2]]第二个问题:b为什么变了?诚问;麻烦说的通俗易懂些
1 回答
郎朗坤
TA贡献1921条经验 获得超9个赞
首先,数组是引用类型的值,意思就是数组名是指向内存地址的一个指针。
所以a是数组的一个指针,a重新赋值是改变了a的指向,b也是一个指针对吧,它指向的就是[1, 2, // a指向的那个数组,即[1, 2]]
a只是更改了指向,没有更改原来那个指向的内容。
但是a[0]就不一样了,它是修改了内存地址的内容。
手机打的…可能体验比较差,但是有问题可以继续问我~
添加回答
举报
0/150
提交
取消