1.请问两次输出结果中a和b的值各是多少?
var a = [2,3,4];
var b = a;
a.push(5);
console.log(a,b);
a = [3,4,5,6];
console.log(a,b)
分析一下:
//输出结果:a = [2,3,4,5] b = [2,3,4,5]
a = [3,4,5,6] b = [2,3,4,5]
1.请问两次输出结果中a和b的值各是多少?
var a = [2,3,4];
var b = a;
a.push(5);
console.log(a,b);
a = [3,4,5,6];
console.log(a,b)
分析一下:
//输出结果:a = [2,3,4,5] b = [2,3,4,5]
a = [3,4,5,6] b = [2,3,4,5]
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答837 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
首先要明确的一点是:在JavaScript中数组也是对象。所以
var b = a
时,都指向了[2, 3, 4],所以a.push(5)
时,会一起变化。a = [3, 4, 5, 6]
时,a指向了[3, 4, 5, 6],此时a的指向已经改变,但b的指向未改变。