javascript中new Array()和var arr=[]用法区别
大家在学习javascript中对于数组函数newArray()和vararr=[]很多朋友不知道如何区别,也不知道用法,下面看看我们总结的。
vararr=[]
这是一种字面量定义数组的方法
vararr=newArray()
这是调用数组构造函数生成的数组
上面的2种定义数组的方法到底一样不一样
目前我们大致的认同是下面这样的
用new关键字去内存开辟一个存储地址比较耗资源,耗内存.
而字面量方式直接在内存开辟一个存储字段相对简单,不耗资源.
我们首先不去否定上面的结论对不对.
首先从功能上来说var=arr=[]和vararr=newArray()是一样的.
然后我们用一段代码来验证一下
varstartTime=newDate().getTime(); vartest1=[]; vartest2=[]; for(vari=0;i<1000000;i++){ //test1[i]={}; test2[i]=newObject(); } varendTime=newDate().getTime(); console.log('输出耗时:',endTime-startTime);
上面test1和test22个数组中每个元素都是一个数组,可以依次注释任意一行代码,我大概测试10多次以上
结果
36**
36**
上面的2个耗时都是3600秒左右,忽上忽下,没有丝毫大的差距
我的运行话就MacBookAir(13-inch,Mid2013),处理器:1.3GHzIntelCorei5,内存:4GB1600MHzDDR3,JSRunner工具
所以姑且认为上面的2种方法差异不大.
[]和newArray()在语法上唯一的区别是newArray()可以直接设置数组的长度
newArray()在构造数组的时候有下面几种方法
vararr=newArray();
vararr=newArray(8);
vararr=newArray("c","d",“e”);
字面量方式
vard=["111","222","333"];
所以在性能上这2个方法没有太大差距,只是一种使用习惯,字面量更加直接了当.
退一步讲,如果我用vararr=[‘111','222','333'];定义一个数组的时候,难道它没有通过构造函数在内存中开辟一个存放地址吗?
js中数组Array的一些常用方法总结
varlist=newArray()是我们在js中常常写到的代码,今天就总结哈Array的对象具有哪些方法。
list[0]=0;
list[1]=1;
list[2]=2;
或者这样声明:varlist=[0,1,2]
1shift()t:删除数组的第一个元素,返回删除的值。这里是0
2unshift(3,4):把参数加载数组的前面,返回数组的长度。现在list:中是3,4,0,1,2
3pop():删除数组的最后一个元素,返回删除的值。这里是2.
4push(3):将参数加载到数组的最后,返回数组的长度,现在List中时:0,1,2,3
5concat(3,4):把两个数组拼接起来。
6splice(start,deleteCount,val1,val2,...):从start位置开始删除deleteCount项,并从该位置起插入val1,val2,...
reverse:将数组反序
vara=[1,2,3,4,5];
varb=a.reverse();//a:[5,4,3,2,1]b:[5,4,3,2,1]
sort(orderfunction):按指定的参数对数组进行排序
vara=[1,2,3,4,5];
varb=a.sort();//a:[1,2,3,4,5]b:[1,2,3,4,5]
slice(start,end):返回从原数组中指定开始下标到结束下标之间的项组成的新数组
vara=[1,2,3,4,5];
varb=a.slice(2,5);//a:[1,2,3,4,5]b:[3,4,5]
join(separator):将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符
vara=[1,2,3,4,5];
varb=a.join("|");//a:[1,2,3,4,5]b:"1|2|3|4|5"