javascript 高效拼字符串

javascript 高效拼字符串

 

就像在c#中一样,我们可以使用”+”来拼接字符串,而对于操作频繁、讲究效率的字符串拼接操作我们应该选择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()) + "<br/>");
 
//---+-----
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()) + "<br/>");

在我的机器上(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("");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值