我真的是 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]
我真的是 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]
这是由于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);
您必须注意控制台将对象处理为“实时”。您已经在控制台上输出的任何对象(数组、对象等)仍然可以进行操作。
这就是为什么当您[2,3]
在第一个日志中预期时,代码已经弹出 3,因此undefined
在 3 的位置被替换。
当然,这个事件取决于浏览器如何实现他们的控制台。