js数组性能实例分析
程序员文章站
2022-03-08 22:31:52
1.在数组添加的过程中尽量使得数组内容的类型保持一致
2.数组添加的时候:
相比两种concat方法的传参,当接受参数为数组时,执行效率要高于接受参数为非数组
索引器多数情况下执行效率要高于push...
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的垃圾回收机制(不记得了去百度,这里推荐点击打开链接)
上一篇: 原生js实现轮播图