3-4选择题

3-4选择题

这个题目自己用电脑试了运行结果 b a 都是[4,44]
选择题答案是b为[4]和a为[4,44],但是都不太明白为什么不是输出b为[4,44]和输出a为[4]
希望得到大家的解答,谢谢

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
离离钟 2018-10-27 16:57:52

在十二行运行之前,a和b指向的是同一个空间,

在第十二行运行完的时候,a被重新赋值,指向了一个新的地址,在堆内存中开辟了一个新的空间,但b还是原来那个老的空间,所以执行完第十二行的时候,a=[4, 44],b=[4],这已经是两个不同的空间了,接着第十四行,又把a=b,就是把a又指向了b的空间,这是两者又相同,都是[4],再下一行,为b添加了一个值44,这时a和b指向同一个空间,所以这时的a和b是相同的,都是[4, 44]。

一路电光带火花 2018-04-10 09:41:01

因为a是重新赋值呀,重新赋值的话,不会影响b的指向。可以测试下。

好帮手慕糖 2018-01-30 11:07:23

你好,因为a是重新赋值,赋值不会影响b的地址指向。然后a=b,这一步,又让二者的指向相同(把b的指向赋值给a);但是push向b里面添加数据,会影响地址。

祝学习愉快~

好帮手慕糖 2018-01-30 10:11:45

你好,首先a=[4],是引用类型的数据,然后,a的值赋值给b,b也指向4。

变量a重新赋值,并不会影响b的指向,所以输出的b还是[4]。

b的值赋给a,又将a的指向改变,指向了4(此时,a和b的指向是一样的)。通过push向b里面添加了44,所以a指向的也是[4,44]。

祝学习愉快~

  • 提问者 左小珍 #1
    还不是很明白,一开始a的值赋值给b,ab指向了同一个引用类型数据,如果a改变了数据,b为什么不会改变了呢?a并没有开辟另一个对象,还是再原来的指针所对应的数据里面做修改
    2018-01-30 10:39:19
  • 我也是这样疑问,a和b指向同一个地址,a发生改变,b怎么可能不变呢?!!!
    2018-04-09 20:06:24
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师