开发者

What happens if you declare an array without New in Javascript? [duplicate]

开发者 https://www.devze.com 2023-03-25 11:42 出处:网络
This question already has answers here: Closed 11 years ago. Possible Duplicate: What's the difference between Array(1) and new Array(1) in JavaScript?
This question already has answers here: Closed 11 years ago.

Possible Duplicate:

What's the difference between Array(1) and new Array(1) in JavaScript?

In javascript,开发者_如何学编程 how are these two different?

var arr = Array();  
var arr2 = new Array();

If they are the same according to JS standards, are there any browsers that treat both ways differently?


According to ECMA-262 edition 5.1:

15.4.1 The Array Constructor Called as a Function

When Array is called as a function rather than as a constructor, it creates and initialises a new Array object. Thus the function call Array(...) is equivalent to the object creation expression new Array(...) with the same arguments.

The section 11.1.4 (it is quite long, so I won't quote it) also states that array literal directly corresponds to the new Array(...) constructor call.


I believe the 2nd is simply proper coding convention, but however Jared has a good point that most people just use var arr = [];

Here's a benchmark for your question: http://jsperf.com/array-vs-new-array

After 10 runs, they're neck and neck averaging 65-80 millions ops per second. I see no performance difference whatsoever between the two.

That being said, I added var arr = []; to the benchmark, and it is consistently 20-30% faster than the other two, clocking in at well over 120 million ops per second.

0

精彩评论

暂无评论...
验证码 换一张
取 消