JavaScript 怎样高效拼接字符串

2024年11月29日 23:43
有3个网友回答
网友(1):

我们可以使用”+”来拼接字符串,而对于操作频繁、讲究效率的字符串拼接操作我们应该选择StringBuilder类。在JavaScript中是否也存在这个问题呢?答案是肯定的,虽然JavaScript并没有为我们提供一个内置的StringBuilder对象,但是我们可以自己来创建一个!至于效率到底能提高多少,让程序说话吧!
//---StringBuilder---
function StringBuilder(){
this.__string__ = new Array();
}
StringBuilder.prototype.append = function(str){
this.__string__.push(str);
}
StringBuilder.prototype.toString = function(){
return this.__string__.join("");
}

var d1 = new Date();
var buffer = new StringBuilder();
for(var i = 1; i < 10000; i++){
buffer.append("E3Card");
}
var strResult = buffer.toString();
var d2 = new Date();

document.write("StringBuilder用时:" + (d2.getTime() - d1.getTime()) + "
");

//---+-----
var d3 = new Date();
var str = "";
for(var i = 1; i < 10000; i++){
str += "E3Card";
}
var d4 = new Date();
document.write("+链接用时:" + (d4.getTime() - d3.getTime()) + "
");

在我的机器上(Core2 3.0G/4GRAM),反复F5后得到一个,比较平稳的测试结果:
StringBuilder用时:32
+链接用时:1109

哇哦,30多倍,我没看错吧!
好了,赶紧自己做好一个Lib,以后都用这个StringBuilder吧:
function StringBuilder(){
this.__string__ = new Array();
}
StringBuilder.prototype.append = function(str){
this.__string__.push(str);
}
StringBuilder.prototype.toString = function(){
return this.__string__.join("");
}

网友(2):

字符串放入数组,通过for循环拼接。

网友(3):

js就直接拼接就行了。。。。哪有什么高效