先贴出完整代码. 复制代码 代码如下: <BR>function StringBuffer() { <BR>this._strings = new Array(); <BR>} <BR>StringBuffer.prototype.append = function(str) { <BR>this._strings.push(str); <BR>//StringBuffer.prototype.length = this._strings.length;//每多一行,就会多消耗处理时间 <BR>var i = "asdfasdf"; <BR>} <BR>StringBuffer.prototype.toString = function() { <BR>this._strings.join(""); <BR>} <BR>/*String类 + 号累加*/ <BR>var d = new Date();//累加开始时间 <BR>var str = "1"; <BR>for (var i = 0; i < 200; i++) { <BR>str += "ssss"; <BR>for (var i = 0; i < 30000; i++) { <BR>str += "text"; <BR>} <BR>} <BR>var d2 = new Date(); //累加结束时间 <BR>document.write("+:"+(d2.getTime() - d.getTime()) + "milliseconds");//累加30000用时 <BR>/*自定义StringBuffer类 字符串累加*/ <BR>d = new Date(); //StringBuffer开始时间 <BR>var buffer = new StringBuffer(); <BR>for (var i = 0; i < 200; i++) { <BR>str += "ssss"; <BR>for (var i = 0; i < 30000; i++) { <BR>buffer.append("text"); <BR>} <BR>} <BR>var resultstr = buffer.toString(); <BR>d2 = new Date(); <BR>document.write("<br/>StringBuffer:" + (d2.getTime() - d.getTime()) + "milliseconds"); <BR>/*直接使用Array 不进行封装*/ <BR>d = new Date(); <BR>var arr = new Array(); <BR>for (var i = 0; i < 200; i++) { <BR>str += "ssss"; <BR>for (var i = 0; i < 30000; i++) { <BR>arr.push("text"); <BR>} <BR>} <BR>var resStr = arr.join(""); <BR>d2 = new Date(); <BR>document.write("<br/>Array:" + (d2.getTime() - d.getTime()) + "milliseconds"); <BR> [code] 先说下我的机器配置 如图1:。 运行时间结果 如图2:在一台N老的机子上运行结果 如图3:上面一堆的代码和图可能乱了。总结如下: 机器配置较低时:“+”字符串拼接方式消耗时间明显高于Array 方式 机器配置较高时:“+”字符串拼接方式消耗时间可能会与Array方式持平。甚者会更短. 总结:为了保险起见。还是推荐使用Array 来进行字符串拼接操作.