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


Posted in Javascript onMay 14, 2012

先贴出完整代码.

<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不一定比字符串累加快(根据电脑配置)

运行时间结果 如图2:
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
在一台N老的机子上运行结果 如图3:
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
上面一堆的代码和图可能乱了。总结如下:

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

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

Javascript 相关文章推荐
学习YUI.Ext 第七天--关于View&amp;JSONView
Mar 10 Javascript
js用图作提交按钮或超连接
Mar 26 Javascript
javascript 读取xml,写入xml 实现代码
Jul 10 Javascript
jQuery淡入淡出元素让其效果更为生动
Sep 01 Javascript
javascript滚轮控制模拟滚动条
Oct 19 Javascript
教你快速搭建Node.Js服务器的方法教程
Mar 30 Javascript
详解VUE中v-bind的基本用法
Jul 13 Javascript
纯js实现画一棵树的示例
Sep 05 Javascript
iview给radio按钮组件加点击事件的实例
Sep 30 Javascript
vue通过style或者class改变样式的实例代码
Oct 30 Javascript
Vue.js计算机属性computed和methods方法详解
Oct 12 Javascript
Vue props中Object和Array设置默认值操作
Jul 30 Javascript
JQuery 返回布尔值Is()条件判断方法代码
May 14 #Javascript
JQuery选择器特辑 详细小结
May 14 #Javascript
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
May 14 #Javascript
js split 的用法和定义 js split分割字符串成数组的实例代码
May 13 #Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
May 11 #Javascript
基于jQuery的公告无限循环滚动实现代码
May 11 #Javascript
javascript 事件处理、鼠标拖动效果实现方法详解
May 11 #Javascript
You might like
十天学会php(1)
2006/10/09 PHP
10个实用的PHP正则表达式汇总
2014/10/23 PHP
PHP的文件操作与算法实现的面试题示例
2015/08/10 PHP
深入理解PHP JSON数组与对象
2016/07/19 PHP
PHP中常用的魔术方法
2017/04/28 PHP
利用JQuery为搜索栏增加tag提示
2009/06/22 Javascript
javascript之querySelector和querySelectorAll使用介绍
2011/12/20 Javascript
基于jQuery的遍历同id元素 并响应事件的代码
2012/06/14 Javascript
使用JavaScript动态设置样式实现代码(2)
2013/01/25 Javascript
JS中不为人知的五种声明Number的方式简要概述
2013/02/22 Javascript
Javascript 垃圾收集机制介绍理解
2013/05/14 Javascript
JavaScript中几种排序算法的简单实现
2015/07/29 Javascript
JS实现的3D拖拽翻页效果代码
2015/10/31 Javascript
js字符串引用的两种方式(必看)
2016/09/18 Javascript
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
JS HTML图片显示Canvas 压缩功能
2017/07/21 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
node中koa中间件机制详解
2017/08/22 Javascript
webpack之devtool详解
2018/02/10 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
2018/02/18 jQuery
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
推荐下python/ironpython:从入门到精通
2007/10/02 Python
Python读写docx文件的方法
2018/05/08 Python
python缩进长度是否统一
2020/08/02 Python
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
学前班教师的自我鉴定
2013/12/05 职场文书
班组长安全生产职责
2013/12/16 职场文书
中学教师请假制度
2014/02/03 职场文书
快餐公司创业计划书
2014/04/29 职场文书
竞选纪律委员演讲稿
2014/09/13 职场文书
学校领导班子四风问题整改意见
2014/10/02 职场文书
组织生活会表态发言材料
2014/10/17 职场文书
团代会开幕词
2015/01/28 职场文书
八年级作文之友情
2019/11/25 职场文书
《最终幻想14》6.01版本4月5日推出 追加新任务新道具
2022/04/03 其他游戏
分享很少见很有用的SQL功能CORRESPONDING
2022/08/05 MySQL