老师不太理解这里。。。
我参考了同学提问的问题,看到有这样子的代码,看到同学有解释,但是我还是并不理解为什么把b = a[0]; 和a = a[1];这两个位置对调为什么输出的结果不一样?以下是代码:
var a = {name: 'xm'}, b = [4];
/*此处添加代码*/
a = [a, b];
b = a[0];
a = a[1];
console.log(a);
console.log(b);
2.
(1)同理,下面这个代码,一样调换了位置也不行为什么?估计问题所在和问题1是一样的,但是我不知道什么原因造成这样的。
var a = {name: 'xm'}, b = [4];
/*此处添加代码*/
b.push(a)
a=b[0]
b=b[1].name
document.write(a+'<br/>')
document.write(b)
(2)我想给a.push(b) 写成这样,他没有输出任何内容是什么原因?
var a = {name: 'xm'}, b = [4];
/*此处添加代码*/
a.push(b)
a=b[1]
b=b[0].name
document.write(a+'<br/>')
document.write(b)
正在回答 回答被采纳积分+1
同学你好,问题解答如下:
1、第一段代码
如果两个赋值交换位置
主要是两个值都赋值给了a,如果首先改变a的值,那么b的值就不会是从原来一开始的值获取。
2、第二段代码
(1)交换位置和第一段代码是同理的,通过push方法将两个值都放在了b变量中,就不能提前改变b的值。
(2)控制台报错了,可以看一下
a是字面量对象,不能使用push方法,只有数组才可以使用push方法。
3、是document.write()方法的问题,会将字面量对象{}转化成字符串输出,所以是[object Object],数组输出是正常的。可以用console.log()在控制台查看对象输出。
4、a = [];这样是把a变量赋值为空数组,原来a是一个对象{},没有0属性,所以a[0]是不可取,所以设置为属性,从数组b中获取4,然后放在a数组中,那么a就是[4]。
代码中输出的是b.name,调用属性输出属性值,所以值是xm,没有问题。如果想要输出整个对象,可以用console.log()方法查看结果。
如果我的回答帮到了你,欢迎采纳,祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星