b=[]
for(i=0;i<2;i++){
b.push(i)
console.log(b)
}
//[0] [0,1]
b=[{},{}]
for(i=0;i<2;i++){
b[i].a=i
console.log(b)
}
//[{a:0},{a:1}] [{a:0},{a:1}]
b=[]
for(i=0;i<2;i++){
b.push(i)
console.log(b)
}
//[0] [0,1]
b=[{},{}]
for(i=0;i<2;i++){
b[i].a=i
console.log(b)
}
//[{a:0},{a:1}] [{a:0},{a:1}]
因为log打印出来的实际上是地址的引用,所以你再控制台展开的时候是会显示赋值之后的结果,因此你这里可以改成
b=[{},{}]
for(i=0;i<2;i++){
b[i].a=i
console.log(JSON.parse(JSON.stringify(b)))
}
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
以下内容完全引自:《你不知道的javascript中卷》第二部分异步和性能 1.1 异步控制台部分