我正在使用Firefox的Web控制台(FF v22)。 使用console.info(),可以反映对数组的未来更改。这是Web控制台的错误吗?或者FF上的JavaScript是否表现得像这样?
例如:
var myArr = [1];
console.info(myArr) // on Firefox [1,2] - NOT EXPECTED
myArr.push(2);
console.info(myArr) // on Firefox [1,2] - EXPECTED
另一方面,IE的行为与预期一致。
var myArr = [1];
console.info(myArr) // on IE: 1
myArr.push(2);
console.info(myArr) // on IE: 1,2
答案 0 :(得分:2)
这是因为console.info
调用是异步的。它可能在完成后的行之前没有完成,当你处理一个通过引用传递的数组时,console.info
调用收到了一个指向数组的指针(似乎在创建日志之前已经更新)而不是调用console.info
时的值。