老师请看一下这是哪里被我理解错了呢?

老师请看一下这是哪里被我理解错了呢?

 var a = {name: 'xm'}, b = [4];

    a = [a, b];

b = a[0];

a = a[1];

console.log(a);

console.log(b);

    a = [a, b];

    a = a[1];

b = a[0];

console.log(a);

console.log(b);

</script>

第一个是对的,而第二个就是错的了呢?首先将a,b 都放在数组里是a=[name: 'xm',4],这里的a[0]=name: 'xm',a[1]=4吗要将他们的值变换不就是a[0]=4,a[1]=name: 'xm'吗?同样的道理a=[a,b],a=a[1],b=a[0]和b=a[0],a=a[1]这有啥不同呢?还请老师解答

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

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

2回答
好帮手慕夭夭 2019-12-15 19:04:14

同学你好,是说的如下截图中的吗?(如果说的不是这个,建议详细描述一下,以便老师为你解答。)下面老师标注了,a改变值之后,值就是数组[4] , a[0]获取的就是数组[4]的第一个元素,也就是元素4 。

http://img1.sycdn.imooc.com//climg/5df612d40915c6fb04990183.jpg

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

好帮手慕夭夭 2019-12-15 16:40:51

同学你好,解答如下:

1. 第一种情况中,a与b的值已经改变了,所以后面会受到影响。参考如下注释理解:

http://img1.sycdn.imooc.com//climg/5df5efe909318e7809550473.jpg

2.不过即使把第一个方法注释,也不会实现效果。这是因为a保存了两个变量的值,而下面显改变了a的值,所以下面b获取的值a[0]就是从a改变之后的值中获取的。

http://img1.sycdn.imooc.com//climg/5df5f0f109aa945005630197.jpg

如果想要先给a重新赋值,就要把两个变量的值保存给b,即如下:

http://img1.sycdn.imooc.com//climg/5df5f17709f2d07505150248.jpg

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 慕函数4234673 #1
    老师你第二个里提到:这是因为a保存了两个变量的值,而下面显改变了a的值,(到这里我能理解)所以下面b获取的值a[0]就是从a改变之后的值中获取的。(在这里a改变之后不就是a[0]=name: 'xm'吗?这里老师怎么会写啊[0]=4呢?
    2019-12-15 18:54:40
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

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

在线咨询

领取优惠

免费试听

领取大纲

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