我真的是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]
答案 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
。
当然,此事件取决于浏览器如何实现其控制台。