【发布时间】:2013-05-05 06:58:02
【问题描述】:
我有以下代码:
console.log("start");
for(var i = 0; i < array.length; i++){
console.log(i + " = " + array[i]);
}
console.log(array);
console.log("end");
这给了我以下输出:
[16:34:41.171] start
[16:34:41.171] 0 = 0
[16:34:41.172] 1 = 168
[16:34:41.172] 2 = 171
[16:34:41.172] [0, 168, 171, 139]
[16:34:41.172] end
也就是说,它在迭代数组时不显示 139 元素,但 console.log 会在输出整个数组时打印它。为什么? (
我稍后会修改数组,console.log 是否以某种方式延迟到我更改数组之后?请注意,更改语句的顺序,将consoel.log(array) 直接放在开头不会改变结果(仍然是不同的输出)。
我使用的是 Firefox 20.0
【问题讨论】:
-
你的数组是如何/在哪里定义的?我没有看到你是什么:jsfiddle.net/j08691/vJd6x
-
数组是对象属性吗? stackoverflow.com/questions/8249136/…
-
Rob W:这回答了我的问题,谢谢。我曾假设 console.log 是即时的且阻塞的,结果不是:)
-
看来我不能接受副本作为正确答案(这是第一个)。所以我接受了丹尼尔的回答。谢谢大家
标签: javascript firefox