?
首选看看别人对自字符串的拼接的一些分析:JavaScript字符串数组拼接的性能
?
示例代码:
?
<html>
<head>
<script type="text/javascript">
function main() {
var str = "Hello World";
var tab = "";
document.getElementById("time1").innerHTML = new Date().getTime();
for (var i = 0; i < 10000; i++) {
tab += str + i;
}
document.getElementById("time2").innerHTML = new Date().getTime();
var tab2 = [];
document.getElementById("time3").innerHTML = new Date().getTime();
for (var i = 0; i < 10000; i++) {
tab2.push(str + i);
}
document.getElementById("time4").innerHTML = new Date().getTime();
}
</script>
</head>
<body onload="main();">
<div id="time1"></div>
<div id="time2"></div>
<div id="time3"></div>
<div id="time4"></div>
</body>
</html>
?
?
?选取的数据为10000次连接相加,测试结果如下:
?
| 浏览器 ? ? ? ? | 字条串+ | 字符串数组join |
| IE6 | 171毫秒 ? ? ? ? | 30毫秒 |
| IE7 | 171毫秒 | 20毫秒 |
| Chrome15 | 3毫秒 | 1毫秒 |
| Firefox8 | 1毫秒 | 1毫秒 |
| Opera11.52 | 3毫秒 | 3毫秒 |
?
? ? 在现代的浏览器中,通过+与通过join在IE上有比较大的不同,如果考虑的是主要为IE6和IE7等用户的话,数据量大,则优先考虑使用数组的join方法为好。
? ? 当然,如果数据量小的话或者是数据较短,而语义上有连续的话,使用+为好,比较直接,容易看懂。