破尘之荒吧 关注:6贴子:150
  • 1回复贴,共1

2013.11.30、JS中的数组定义的两种方式的区别new Array()与[]

只看楼主收藏回复

JS定义数组变量时,在不需要给定数组的维度和长度的情况下,通常有两种方法:
1、var arrTest=new Array();
2、var arrTest=[];
两者效果一样,但是经过查看与对比,在各种对外公开的JS大型开源类库的代码中,第一种方法基本看不到。
于是针对这个问题进行了搜索与寻找。在CSDN上找到一篇关于new Array()与[]的差别的讨论帖。帖子中提到了两者的细微差别:使用new关键字的方法会在内存中开辟一些空间,用来记录与存储该变量,也就是这是一个实例化过程。
以下为原帖中引用的记录:

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

在另外一个搜索结果中,有提到这样的一个说法:

很简单,Array()是一个对象,[]是一个数据原型。使用new Array()系统每次都会新生成一个对象(浏览器每生成一个对象都会耗费资源去构造他的属性和方法),他的子集是[];
个人推荐使用[],效率高。浏览器对于CPU很吃紧,所以很多时候要有技巧。比如数字转换成字符只要a=a+'';就可以了,比用String效率高了很多。但是如果乱用是会造成错误的

W3School上的解释也是类似:JavaScript Array(数组)对象——数组对象的作用是:使用单独的变量名来存储一系列的值。


1楼2013-11-30 09:24回复
    高人啊。。。。。。


    2楼2018-06-28 10:42
    回复