关于Javascript中的pop()和push()

时间:2012-07-09 20:50:12

标签: javascript arrays

我真的是Javascript的初学者,并且尽可能多地尝试我所阅读的内容。

但是当来到pop()push()时,我得到了一些我想知道的奇怪结果。

以下是代码:

var arr = [];
arr.push(2,3);
console.log(arr);

console.log(arr.pop());
console.log(arr);

结果是:

  

[2,undefined×1]

     

3

     

[2]

不应该是:

  

[2,3]

     

3

     

[2]

2 个答案:

答案 0 :(得分:5)

这是由于console.log对您的浏览器进行异步评估。在显示第一个console.log的结果时,由于pop(),该项目已经消失。

要获得准确的结果,请致电toString()

var arr = [];
arr.push(2,3);
console.log(arr.toString()); // 2,3 - as expected.

console.log(arr.pop());
console.log(arr);

答案 1 :(得分:4)

您必须注意控制台将对象处理为“实时”。您在控制台上输出的任何对象(数组,对象等)仍然需要操作。

这就是为什么当您在第一个日志中预期[2,3]时,代码已经弹出了3,因此在3点上替换了undefined

当然,此事件取决于浏览器如何实现其控制台。