Possible Duplicate:
Is Chrome's JavaScript console lazy about evaluating arrays?




我写下一个js函数:

function popFromArray(arr){
    console.info(arr);
    console.info(arr.pop());
    console.info(arr);
}


当我在控制台中编写下一个代码时,我期望下一个输出:

>>> popFromArray([12, 432, 52, 523]);
[12, 432, 52, 523]
523
[12, 432, 52]


但是我发现我的行为异常(chrome和firefox):

>>> q = [12, 432, 52, 523];

>>> popFromArray(q);
[12, 432, 52, 523]
523
[12, 432, 52, 523]

>>> popFromArray(q);
[12, 432, 52]
523
[12, 432, 52]

>>> popFromArray(q);
[12, 432]
52
[12, 432]


有谁能解释为什么会发生?

最佳答案

尝试单步执行功能代码:它将正确报告。

我认为这只是一个并发问题。控制台输出的生成与程序执行并行进行,因此结果不可预测。

08-19 03:44