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

Raf*_*del 2 javascript arrays

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

但是当谈到pop()并且push(),我得到一些我想知道的奇怪结果.

这是代码:

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

console.log(arr.pop());
console.log(arr);
Run Code Online (Sandbox Code Playgroud)

结果是:

[2,undefined×1]

3

[2]

不应该是:

[2,3]

3

[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);
Run Code Online (Sandbox Code Playgroud)

  • @Rafael:`.toString()`将数组同步转换为字符串,并在调用`pop()`之前将该字符串传递给`console.log`.与其他JavaScript相比,某些浏览器上`console.log`的异步性是一种特殊情况. (3认同)