变量引用地址和值?
var a =[4];
var b =a;
a = [4,44]
console.log(b)
a =b
b.push(44)
console.log(a)
结果为什么是[4],[4,44];
引用不知只改变地址吗,为什么前面的那个还是【4】?,按照改变引用地址的理解后面那个push后改变的了原数组b,然后b的地址给a,a就为【4,44】可以这样理解么? 但是前面那个怎么理解,a的值不是被修改了吗?
33
收起
正在回答
1回答
var a =[4];
var b =a; //b =[4]
a = [4,44]; //a = [4,44],a新开辟一个引用地址
console.log(b); //b =[4],因为a新开辟了一个引用地址,并没有影响到b,所以现在b还是为[4]
a =b; //a = [4],将b的地址赋给a
b.push(44); //b = [4,44],同一个引用地址,b的改变必将使a改变,a由原来的a=[4]改变为a=[4,44]
console.log(a); //所以现在a为a = [4,44]
//以上为本人自己的理解,如有不对的地方,还请多多批评
进击JavaScript核心 2018
- 参与学习 466 人
- 提交作业 74 份
- 解答问题 635 个
JavaScript不仅能实现静态页面到动态特效的转变,还能完成数据的动态交互,但是关于js到底功能有多强大,大家还是有所期待的,本路径将带你深入到js中,一一揭开JavaScript的神秘面纱。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星