JavaScript创建数组Array方法

JavaScript中的 Array 数组对象,主要用于封装多个任意类型的数据,并对它们进行管理。js中创建数组有三种方式。

构造函数

构造函数创建数组有两种方式:

new Array(size)  
new Array(value1,value2,value3,…………)  

普通函数

普通函数方式创建数组也有两种方式:

Array(size)  
Array(value1,value2,value3,…………)  

字面量

[value1,value2,value3,…………]

网络上对new Array()Array()这两种方式区别的讨论较少。这两种方式创建数组没有任何区别。

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 Array Constructor Called as a Function

疑惑主要集中在构造函数和字面量这两种创建方式上。有人专门撰写博客说永远不要使用new Array()这种方式创建数组。纠结的地方在于Array()可以接受多种参数。没有参数时创建长度为零的空数组。有多个参数时所有参数均为创建数组的元素,参数个数就是所创数组的长度。当只有一个参数时,如果这个参数是Number数据类型(不能为负数或小数部分不为0的浮点数),则创建一个长度为该参数值,所有元素为undefined的数组;如果只有一个非Number的参数,则创建一个长度为1元素为参数的数组。

var a=new Array(1,2,3,4,5,6);  
a.length;   // 6  
a[0];       //1

var b=new Array(1);  
a.length;      //1  
a[0]           //undefined

var c=new Array("1")  
a.length;       //1  
a[0]            //"1"

var d=new Array(-3); //这种情况会报错Invalid array length!  

除了接收参数情况复杂 new Array()和[]相比还有性能损耗这种说法。

new关键字的使用 除了在需要实例化一个对象,或罕见的需要延时加载数据的情况外,基本上不需要使用new关键字。在Javascript里分配大量的new变量地址是一项很慢的操作,为了效率起见,应该始终使用对象符号。

以上。 JavaScript里创建数组最好是使用[]字面量的方法.