今天我正在浏览stackoverflow中的一些帖子,这个回复刚刚弹出。 https://stackoverflow.com/a/2280350/548591
https://stackoverflow.com/a/11513602/548591
var name = [];
var name = new Array();
在性能方面,文字比初始化new Array Object
更好。
现在正在阅读这篇文章,只是想更新。
http://yuiblog.com/blog/2006/11/13/javascript-we-hardly-new-ya/
答案 0 :(得分:0)
从我自己直接实现ECMA Grammar到制作解析器,我可以告诉你:
直接解析数组文字[]
然后转换为数组对象,而new Array()
首先解析为“表达式”,然后检查新关键字,然后检查要创建的内容(在这种情况下为Array
),然后进行评估。
我无法确切地告诉您使用new Array()
确实损失了多少性能,它因Javascript引擎而异。例如,V8(Chrome)会预编译代码以对其进行优化,因此无论如何它都可以转换为文字[]
,具体取决于它的工作原理。
最简单的方法是创建一个测试函数,创建几十万个数组,并分别使用文字声明或构造函数初始化来测量循环的时间。
答案 1 :(得分:0)
是的,根据测试,初始化[]
比使用new Array
要快得多。除此之外,文字版本更具可读性
这个has already been asked!
答案 2 :(得分:0)
根据浏览器的不同, Literals appear to be up to twice as fast 。也就是说,在存在显着差异的浏览器中。