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)))
}
13 回答13.1k 阅读
8 回答3k 阅读
3 回答1.4k 阅读✓ 已解决
2 回答5.3k 阅读✓ 已解决
5 回答1.5k 阅读
7 回答2.2k 阅读
3 回答2.4k 阅读✓ 已解决
以下内容完全引自:《你不知道的javascript中卷》第二部分异步和性能 1.1 异步控制台部分