我经常看到开发人员在 JavaScript 中使用如下表达式:
arr = []
arr[arr.length] = "Something"
arr[arr.length] = "Another thing"
不会 push
更合适吗?
arr = []
arr.push("Something")
arr.push("Another thing")
原文由 bloudermilk 发布,翻译遵循 CC BY-SA 4.0 许可协议
我经常看到开发人员在 JavaScript 中使用如下表达式:
arr = []
arr[arr.length] = "Something"
arr[arr.length] = "Another thing"
不会 push
更合适吗?
arr = []
arr.push("Something")
arr.push("Another thing")
原文由 bloudermilk 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
事实上,我在今年年初问过自己同样的问题。 更新了新的测试用例 http://jsperf.com/array-push-vs-unshift-vs-direct-assignment/2
看来
push
在 chrome 中要快得多,而在 FF 中则差不多。直接在 IE9 中速度更快,但我很想知道它在 IE10 中的表现如何。我会说大多数开发人员会假设设置数组的长度,然后使用直接赋值会更快,就像大多数编程语言的情况一样。但 JavaScript 不同。 Javascript 数组并不是真正的数组,它们只是键/值映射,就像所有其他 JavaScript 对象一样。因此,预先分配基本上被置若罔闻。
我个人更喜欢
push
(: