JS字符串累加Array不一定比字符串累加快(根据电脑配置)
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
发布时间:2016-12-30 来源:查字典编辑
摘要:先贴出完整代码.复制代码代码如下:functionStringBuffer(){this._strings=newArray();}Stri...

先贴出完整代码.

复制代码 代码如下:

<script type="text/javascript">

function StringBuffer() {

this._strings = new Array();

}

StringBuffer.prototype.append = function(str) {

this._strings.push(str);

//StringBuffer.prototype.length = this._strings.length;//每多一行,就会多消耗处理时间

var i = "asdfasdf";

}

StringBuffer.prototype.toString = function() {

this._strings.join("");

}

/*String类 + 号累加*/

var d = new Date();//累加开始时间

var str = "1";

for (var i = 0; i < 200; i++) {

str += "ssss";

for (var i = 0; i < 30000; i++) {

str += "text";

}

}

var d2 = new Date(); //累加结束时间

document.write("+:"+(d2.getTime() - d.getTime()) + "milliseconds");//累加30000用时

/*自定义StringBuffer类 字符串累加*/

d = new Date(); //StringBuffer开始时间

var buffer = new StringBuffer();

for (var i = 0; i < 200; i++) {

str += "ssss";

for (var i = 0; i < 30000; i++) {

buffer.append("text");

}

}

var resultstr = buffer.toString();

d2 = new Date();

document.write("<br/>StringBuffer:" + (d2.getTime() - d.getTime()) + "milliseconds");

/*直接使用Array 不进行封装*/

d = new Date();

var arr = new Array();

for (var i = 0; i < 200; i++) {

str += "ssss";

for (var i = 0; i < 30000; i++) {

arr.push("text");

}

}

var resStr = arr.join("");

d2 = new Date();

document.write("<br/>Array:" + (d2.getTime() - d.getTime()) + "milliseconds");

</script>

[code]

先说下我的机器配置 如图1:

JS字符串累加Array不一定比字符串累加快(根据电脑配置)1

运行时间结果 如图2:

JS字符串累加Array不一定比字符串累加快(根据电脑配置)2

在一台N老的机子上运行结果 如图3:

JS字符串累加Array不一定比字符串累加快(根据电脑配置)3

上面一堆的代码和图可能乱了。总结如下:

机器配置较低时:“+”字符串拼接方式消耗时间明显高于Array 方式

机器配置较高时:“+”字符串拼接方式消耗时间可能会与Array方式持平。甚者会更短.

总结:为了保险起见。还是推荐使用Array 来进行字符串拼接操作.

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类