我经常看到开发人员在 JavaScript 中使用如下所示的表达式:
arr = []
arr[arr.length] = "Something"
arr[arr.length] = "Another thing"
不会push
更合适吗?
arr = []
arr.push("Something")
arr.push("Another thing")
事实上,我在今年年初也问过自己同样的问题。更新了新的测试用例 http://jsperf.com/array-push-vs-unshift-vs-direct-assignment/2 http://jsperf.com/array-push-vs-unshift-vs-direct-assignment/2
看起来push
在 chrome 中要快得多,在 FF 中大约相等。另外,直接在 IE9 中速度更快,但我很想看看它在 IE10 中的表现如何。
我想说,大多数开发人员会假设设置数组的长度,然后使用直接赋值会更快,就像大多数编程语言的情况一样。但 JavaScript 不同。Javascript 数组并不是真正的数组 http://blog.niftysnippets.org/2011/01/myth-of-arrays.html,它们只是键/值映射,就像所有其他 JavaScript 对象一样。因此,预分配实际上是被置若罔闻。
我个人更喜欢push
(:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)