2

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

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

这是代码:

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

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

结果是:

[2,未定义×1]

3

[2]

不应该是:

[2, 3]

3

[2]

4

2 回答 2

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);
于 2012-07-09T20:53:43.000 回答
4

您必须注意控制台将对象处理为“实时”。您已经在控制台上输出的任何对象(数组、对象等)仍然可以进行操作。

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

当然,这个事件取决于浏览器如何实现他们的控制台。

于 2012-07-09T20:53:24.157 回答