我们说我们有以下代码
var array = [1,2,3,4];
console.log(array);
array.pop();
array.pop();
console.log(array);
输出:
[1,2]
[1,2]
为什么2 console.log()
相同,为什么第一个显示在它调用后计算的结果?
console.log()
功能'延迟' 以某种方式或某种方式?
答案 0 :(得分:4)
这是一个众所周知的问题。虽然console.log调用以正确的顺序进行,但是日志记录机制本身是基于引用的,并且在Chrome和基于webkit的系统中经常会导致这种情况。以下是一种解决方法,可以将其从参考值改为值。
var array = [1,2,3,4];
console.log(JSON.stringify(array));
array.pop();
array.pop();
console.log(JSON.stringify(array));
提交的缺陷:https://code.google.com/p/chromium/issues/detail?id=50316
答案 1 :(得分:0)
您使用的是哪种环境?如果您在Nodejs中执行是异步的,那么它是可能的。在浏览器控制台中,这不应该发生。事实上,我使用Chrome和FF进行了测试,我得到了两种情况
var array = [1,2,3,4];
console.log(array);
array.pop(); array.pop();
console.log(array);
[1, 2, 3, 4]
[1, 2]
undefined
哪个是正确的。