console.log是异步的吗?

时间:2014-07-21 13:31:51

标签: javascript firebug

我只是在摆弄一些小提琴。这样一个适当的服务名称。

我常常在摆弄时使用firebug-lite-debug.js作为外部资源。以下代码是此问题的主题。

var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var hello, removed;

console.log(numbers);

removed = numbers.slice(2, 5); // 3, 4, 5
console.log(numbers);
console.log(removed);

hello = numbers.splice(4, 2, 200, 200);
console.log(numbers);
console.log(hello);

输出如下。

[1, 2, 3, 4, 200, 200, 7, 8, 9, 10]
[1, 2, 3, 4, 200, 200, 7, 8, 9, 10]
[3, 4, 5]
[1, 2, 3, 4, 200, 200, 7, 8, 9, 10]
[5, 6]

然而,在我看来,因为splice()仅在前几个console.log()语句之后被调用,所以不应该在任何地方出现200,而是第4行。

我要么疯了,要么console.log()是异步的。这里发生了什么?

http://jsfiddle.net/Ae3Ay/

更新: Firebug's console.log: debugging asynchronous variables提到console.log()确实是异步的。这是设计的吗?如果是的话,为什么会这样呢?如果它返回的是对同一个Array实例的引用,它是否会破坏基于步骤的调试的目的?

0 个答案:

没有答案