js 数组性能

1.在数组添加的过程中尽量使得数组内容的类型保持一致,详情参考 类型化数组.

2.数组添加的时候:

 相比两种concat方法的传参,当接受参数为数组时,执行效率要高于接受参数为非数组
 索引器多数情况下执行效率要高于push方法

 当执行次数越来越多时,索引器的执行效率开始不如push方法


3.字符串的情节,建议先形成数组,用数组的形式添加进去,然后用join分割形成字符串. 因为用+=拼接字符串是十分耗性能.如:

let str1 = "";
let len = 0;
while(len<10000){
    str1 += len+"";
    len++;
}
let arrStr = [];
let len = 0;
while(len<10000){
    arrStr[len] = len;
     len++;
}
let str2 = arrStr.join("");

像上面代码中 str1的形成速度就没有str2的要快速.

当字符串相对较小(小于20字符)且连接数量也较小时(小于1000个),所有的浏览器使用加法运算符都能在不到1毫秒内轻松完成连接。增加字符串数量或大小时,IE7中性能会明显下降。字符串大小增加时,Firefox中加法运算符和数组成技巧性能差异会变小。字符串数量增加时,Safari中加法运算符和数组成技巧性能差异会变小。改变字符串数量或大小时,Chrome和Opera中加法运算符一直保持领先优势。

所以,由于在各浏览器下性能不一致,选用技术取决于实际情况和面对的浏览器。

大多数情况下,加法运算符是首选;如果用户主要使用IE6或7,并且字符串大小较大或数量较多时,那么数组技术就很值得。



4.注意JS的垃圾回收机制(不记得了去百度,这里推荐点击打开链接)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值