猿问

js变量指向的问题

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为什么变了?

诚问;麻烦说的通俗易懂些


红颜莎娜
浏览 424回答 1
1回答

郎朗坤

首先,数组是引用类型的值,意思就是数组名是指向内存地址的一个指针。所以a是数组的一个指针,a重新赋值是改变了a的指向,b也是一个指针对吧,它指向的就是[1, 2, // a指向的那个数组,即[1, 2]]a只是更改了指向,没有更改原来那个指向的内容。但是a[0]就不一样了,它是修改了内存地址的内容。手机打的…可能体验比较差,但是有问题可以继续问我~
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答