老师帮我看下结果

来源:3-9 选择练习

vivi_li

2020-05-08 23:10:40

var a=[4];
var b= a;
a = [4,44];
console.log(b);//[4]
a=b;
b.push(44);
console.log(a);//[4,44]


为什么我的代码返回的都是[4,44]

写回答

3回答

好帮手慕久久

2020-05-09

同学你好,由于控制台的原因,页面开始打开的时候,展现形式是这样的:

http://img.mukewang.com/climg/5eb696170953d42503940276.jpg

因为此时内存中a和b的值已经是程序运行的最终结果[4,44]了;再次刷新一下,控制台的展现形式就会变成如下这样:

http://img.mukewang.com/climg/5eb69626094641cf04970197.jpg

它为我们展现了b最初的值是[4],将打印结果[4]展开,会发现它里面还是b最终的结果,如下:

http://img.mukewang.com/climg/5eb6963209cd6a7704440280.jpg

所以如果想要看到第一次打印时b的值,需要刷新一下,让控制台以第二种方式展现形式。

0

好帮手慕久久

2020-05-09

同学你好,在当前页面打开的情况下,再刷新一下,就会看到打印结果不全部都是[4,44]了;原因是第一次打开页面时,代码先运行完,然后浏览器才执行console,所以打印的是a、b最后的运行结果。

0
hivi_li
h 不太明白啊
h020-05-09
共1条回复

好帮手慕久久

2020-05-09

同学你好,问题解答如下:

http://img.mukewang.com/climg/5eb6530509f87aa407890509.jpg

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


0
hivi_li
h 不是的 你试下 console输出都是[4,44] 中间的b输出也是[4,44]但是如果采用document.write(b)就是[4]
h020-05-09
共1条回复

0 学习 · 14456 问题

查看课程