javascript中字符串拼接需注意的问题


Posted in Javascript onJuly 13, 2010

在开发中大家也都会注意尽量使用StringBuilder而不采用普通的字符串拼接方式。但是可能大部分开发者却忽略了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 StringBuilder(); 
for(var i=0;i<10000;i++){ 
sb.append("stext"); 
} 
var result=sb.toString(); 
d2=new Date(); 
document.write("数组方式耗时:"+(d2.getTime()- d1.getTime())+"毫秒;"); 
} 
/////利用Array实现的字符串拼接函数,为方便c#开发者特意取名StringBuilde以便于理解 
function StringBuilder(){ 
this._strings_=new Array; 
} 
StringBuilder.prototype.append=function(str){ 
this._strings_.push(str); 
}; 
StringBuilder.prototype.toString=function(){ 
return this._strings_.join(""); 
};

三次执行 xntest()函数后的结果为:

字符串拼接方式耗时:735毫秒;数组方式耗时:62毫秒;
字符串拼接方式耗时:766毫秒;数组方式耗时:63毫秒;
字符串拼接方式耗时:703毫秒;数组方式耗时:63毫秒;

此例是拼接10000次字符串的性能测试,相信结果大家有目共睹,有兴趣的朋友可以自己测试一下。
所以 ,在前台开发中我们也应尽量避免大规模的字符串拼接操作,应采用数组方式来合理提高代码效率。

Javascript 相关文章推荐
关于JavaScript的一些看法
May 27 Javascript
GRID拖拽行的实例代码
Jul 18 Javascript
js中精确计算加法和减法示例
Mar 28 Javascript
超级好用的jQuery圆角插件 Corner速成
Aug 31 Javascript
jQuery的load()方法及其回调函数用法实例
Mar 25 Javascript
实现前后端数据交互方法汇总
Apr 07 Javascript
浅谈JavaScript的Polymer框架中的behaviors对象
Jul 29 Javascript
js实现界面向原生界面发消息并跳转功能
Nov 22 Javascript
想用好React的你必须要知道的一些事情
Jul 24 Javascript
javascript实现文字无缝滚动效果
Aug 26 Javascript
深入浅析Vue全局组件与局部组件的区别
Jun 15 Javascript
vue.js自定义组件directives的实例代码
Nov 09 Javascript
转换json格式的日期为Javascript对象的函数
Jul 13 #Javascript
Jquery+WebService 校验账号是否已被注册的代码
Jul 12 #Javascript
Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)
Jul 11 #Javascript
不同浏览器的怪癖小结
Jul 11 #Javascript
return false;和e.preventDefault();的区别
Jul 11 #Javascript
基于jQuery的树控件实现代码(asp.net+json)
Jul 11 #Javascript
js 模拟气泡屏保效果代码
Jul 10 #Javascript
You might like
mcrypt启用 加密以及解密过程详细解析
2013/08/07 PHP
PHP循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
PHP封装的mysqli数据库操作类示例
2019/02/16 PHP
事件绑定之小测试  onclick &amp;&amp; addEventListener
2011/07/31 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
8个实用的jQuery技巧
2014/03/04 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
详解JavaScript数组和字符串中去除重复值的方法
2016/03/07 Javascript
jquery层级选择器的实现(匹配后代元素div)
2016/09/05 Javascript
vue.js表格分页示例
2016/10/18 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
2016/11/09 Javascript
基于JavaScript实现带缩略图的轮播效果
2017/01/12 Javascript
关于Bootstrap按钮组件消除黄框的方法
2017/05/19 Javascript
React Native时间转换格式工具类分享
2017/10/24 Javascript
javascript变量提升和闭包理解
2018/03/12 Javascript
15个顶级开源JavaScript框架和库
2018/10/10 Javascript
微信小程序日历效果
2018/12/29 Javascript
JS块级作用域和私有变量实例分析
2019/05/11 Javascript
js实现简单的秒表
2020/01/16 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
[17:36]VG战队纪录片
2014/08/21 DOTA
详解Python程序与服务器连接的WSGI接口
2015/04/29 Python
python实现获取Ip归属地等信息
2016/08/27 Python
Python基于列表模拟堆栈和队列功能示例
2018/01/05 Python
Python logging管理不同级别log打印和存储实例
2018/01/19 Python
Python读写/追加excel文件Demo分享
2018/05/03 Python
Python之批量创建文件的实例讲解
2018/05/10 Python
Python 字典中的所有方法及用法
2020/06/10 Python
详解在Python中使用Torchmoji将文本转换为表情符号
2020/07/27 Python
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
2013/09/02 HTML / CSS
Java的五个基础面试题
2016/02/26 面试题
数学与统计学院学生个人职业生涯规划书
2014/02/10 职场文书
员工加薪申请报告
2015/05/15 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书
原来闭幕词是这样写的呀!
2019/07/01 职场文书
基于Redis结合SpringBoot的秒杀案例详解
2021/10/05 Redis