【问题标题】:Why is Array.prototype.push faster than variable declaration为什么 Array.prototype.push 比变量声明快
【发布时间】:2017-08-11 18:15:57
【问题描述】:

我运行了以下 jsperf https://jsperf.com/push-vs-define-anaoum

并发现在这种情况下推送:

var a = [];
a.push([1,2,3]);
a.push(["a","b","c"]);

比只声明 a 里面的子数组要快:

var a = [
  [1,2,3],
  ["a","b","c"]
];

谁能告诉我原因或指出正确的文档?

谢谢

【问题讨论】:

  • 您使用的是哪个浏览器?我刚刚在 Edge 中尝试过,push 的输出速度慢了 20%。
  • @KirkLarkin Chrome 60.0.3112 / Windows 7 0.0.0
  • .push() Windows 10 上的 Firefox 55 运行速度慢 23%,但 Chrome 61 运行速度提高 75%(类似结果)。
  • @Pluto 是的,我不会说我很惊讶,但我仍然喜欢阅读有关该主题的文档或文章。优化对我来说很重要
  • 对我来说,在 Chrome 61 上推送在 jsperf.com 上的速度也快了大约 6.5 倍,但在 jsben.ch 上速度较慢,所以也取决于它的测量方式

标签: javascript jsperf


【解决方案1】:

对我来说,用子数组声明 a 比 push 快 :)

我认为这取决于计算机/设备的组件

【讨论】:

  • 我使用的是 Chrome 60.0.3112 / Windows 7 0.0.0
猜你喜欢
  • 2016-08-19
  • 1970-01-01
  • 2017-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-14
相关资源
最近更新 更多