【www.gdgbn.com--js教程】

function xntest(){
var d1=new date();
var str="";
for(var i=0;i<10000;i++){
str+="stext";
}
var d2=new date();
document.write(" 字符串拼接方式耗时:"+(d2.gettime()- d1.gettime())+"毫秒;");
d1=new date();
var sb=new array();
for(var i=0;i<10000;i++){
sb.push("stext");
}
var result=sb.tostring();
d2=new date();
document.write(" 数组方式耗时:"+(d2.gettime()- d1.gettime())+"毫秒;");
}

下面看简介应用

每次完成字符串连接都会执行步骤2到6,使得这种操作非常消耗资源。如果重复这一过程几百次,甚至几千次,就会造成性能问题。解决方法是用array对象存储字符串,然后用join()方法(参数是空字符串)创建最后的字符串。想像用下面的代码代替前面的代码:
复制代码 代码如下:

var str=new array();
str[0]="hello";
str[1]="world";
str.join("");

这样,无论在数组中引入多少字符串都不成问题,因为只在调用join()方法时才会发生连接操作。此时,执行的步骤如下:
(1) 创建存储结果的字符串。
(2) 把每个字符串复制到结果中的合适位置。
复制代码 代码如下:

function stringbuilder(){
this._string=new array();
}
stringbuilder.prototype.append=function(str){
this._string.push(str);
}
stringbuilder.prototype.tostring=function(){
return this._string.join("");
}

符串拼接的最快方法


第一种:逐个字符串相加
复制代码 代码如下:

var arr = ["item 1", "item 2", "item 3", ...],
list = "";
for (var i = 0, l = arr.length; i < l; i++) {
list += "" + arr[i] + "";
}
list = "" + list + "";

这种最常见的,但是效率最低!代码逻辑相对来说复杂。
第二种:逐个 push 进数组
复制代码 代码如下:

var arr = ["item 1", "item 2", "item 3", ...],
list = [];
for (var i = 0, l = arr.length; i < l; i++) {
list[list.length] = "" + arr[i] + "";
}
list = "" + list.join("") + "";

比上一种方法稍微快一些,但还是不够好…
第三种:直接join()
复制代码 代码如下:

var arr = ["item 1", "item 2", "item 3", ...];
var list = "" + arr.join("") + "";

最后看看字符串联连时注意事项

尽量使用stringbuilder而不采用普通的字符串拼接方式。但是可能大部分开发者却忽略了js中也需要注意这种效率问题

本文来源:http://www.gdgbn.com/wangyezhizuo/28575/