时间:2021-05-26
1 如何进行字符串连接?
首先让我们来回顾一下字符串连接的两种常用方法:
1.1 使用字符串连接运算符
常用的语言(如Java、C#、PHP等)都有字符串连接运算符,Javascript也不例外,代码示例:
复制代码 代码如下:
var str = "";
str = str + "a";
1.2 使用数组
在常用的语言中,字符串连接运算的性能普遍不高,为此在C#中就专门提供了StringBuilder(Java中提供了StringBuffer)用于连接字符串。而在Javascript中就出现了通过Array模拟StringBuilder的方案。
复制代码 代码如下:
var str = [];
for (var i = 0; i < 100; i++) {
str[i] = "12345";
}
str = str.join("");
2 测试
下面通过复制字符串的过程来测试两种方法的性能:
2.1 通过字符串连接运算符进行复制:
复制代码 代码如下:
function copyByOperator(str, times) {
var newStr = "";
for (var i = 0; i < times; i++) {
newStr += str;
}
return newStr;
}
2.2 通过数组进行复制:
复制代码 代码如下:
function copyByArray(str, times) {
var newStr = [];
for (var i = 0; i < times; i++) {
newStr[i] = str;
}
return newStr.join("");
}
str采用一段固定的HTML字符串,长度是61。
2.3 IE下的测试
考虑到IE的性能比较差,先用小的times值(6000)在IE 6、IE 7和IE 8下面测试。运行10次后取平均值,结果如下:
IE浏览器下的测试结果浏览器copyByOperatorcopyByArrayIE 61780.4ms9.5msIE 71754.6ms7.7msIE 81.6ms9.4ms
IE6、7与IE8的测试结果相距甚远,很明显地,IE 8对字符串连接运算进行了优化,效率已经高于数组复制法。
下面再用比较大的times值(50000)对最新版本的各种浏览器进行测试。
各种浏览器的测试结果浏览器copyByOperatorcopyByArrayIE 821.8ms54.7msFirefox 3.640.9ms27.9msChrome 44.4ms10.9msSafari 4.0.541.6ms34.6msOpera 10.5033.1ms23ms
这个结果真是出人意料。IE 8下的字符串连接运算竟然把Chrome以外的浏览器都打败了,那些老说IE性能低下的可要注意点了。而在Chrome下也出现了字符串连接运算比数组复制法高效的情况。
浏览器的性能在不断地提高,作为前端工程师,也要适时调整Javascript程序的优化策略,以获得最佳的性能。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
字符串连接函数:字符串连接就是将一个字符串连接到另一个字符串的末尾,使其组合成一个新的字符串,在字符串处理函数中,strcat函数具有字符串连接功能。下面是用C
刚刚在看Javascript犀牛书,看到字符串这一节,平时工作接触到这方面的不多,想着整理下,以备不时只需。JavaScript的内置功能之一就是字符串连接,如
在Lua中,字符串是一个常量,如果用字符串连接符“..”把2个字符串连接起来,例如first_str=first_str..second_str,那么原来的fi
本文实例讲述了Python字符串拼接、截取及替换方法。分享给大家供大家参考,具体如下:python字符串连接python字符串连接有几种方法,我开始用的第一个方
C++字符串处理函数字符串连接函数strcat其函数原型为strcat(char[],constchar[]);strcat是stringcatenate(字符