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 相关文章推荐
JS中判断null、undefined与NaN的方法
Mar 24 Javascript
jquery中post方法用法实例
Oct 21 Javascript
基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式
Oct 28 Javascript
Node.js实现JS文件合并小工具
Feb 02 Javascript
JS判断字符串字节数并截取长度的方法
Mar 05 Javascript
js老生常谈之this,constructor ,prototype全面解析
Apr 05 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
May 12 Javascript
AngularJs  E2E Testing 详解
Sep 02 Javascript
ionic由于使用了header和subheader导致被遮挡的问题的两种解决方法
Sep 22 Javascript
js实现贪吃蛇小游戏(容易理解)
Jan 22 Javascript
jQuery Autocomplete简介_动力节点Java学院整理
Jul 17 jQuery
JavaScript中BOM对象原理与用法分析
Jul 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
《心理测量者3》剧场版动画预告
2020/03/02 日漫
php中inlcude()性能对比详解
2012/09/16 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
2013/06/25 PHP
不使用php api函数实现数组的交换排序示例
2014/04/13 PHP
PHP生成压缩文件实例
2015/02/07 PHP
PHP简单获取及判断提交来源的方法
2016/04/22 PHP
JS 有名函数表达式全面解析
2010/03/19 Javascript
JavaScript入门之基本函数详解
2011/10/21 Javascript
js控制表单操作的常用代码小结
2013/08/15 Javascript
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
2015/03/04 Javascript
nodejs中的fiber(纤程)库详解
2015/03/24 NodeJs
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
JQuery 的跨域方法推荐_可跨任何网站
2016/05/18 Javascript
Node.JS利用PhantomJs抓取网页入门教程
2017/05/19 Javascript
JavaScript实现跟随滚动缓冲运动广告框
2017/07/15 Javascript
Vue实现todolist删除功能
2018/06/26 Javascript
ztree加载完成后显示勾选节点的实现代码
2018/10/22 Javascript
微信小程序wx.navigateTo中events属性实现页面间通信传值,数据同步
2019/07/13 Javascript
使用Bootstrap做一个朝代历史表
2019/12/10 Javascript
JavaScript eval()函数定义及使用方法详解
2020/07/07 Javascript
Python XlsxWriter模块Chart类用法实例分析
2019/03/11 Python
Python对接六大主流数据库(只需三步)
2019/07/31 Python
Python实现代码统计工具
2019/09/19 Python
tensorflow使用指定gpu的方法
2020/02/04 Python
超酷炫 CSS3垂直手风琴菜单
2016/06/28 HTML / CSS
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
家长对孩子评语
2014/01/30 职场文书
中医学专业自荐信范文
2014/04/01 职场文书
过程装备与控制工程专业求职信
2014/07/02 职场文书
大学活动总结模板
2014/07/10 职场文书
小学生一分钟演讲稿
2014/08/26 职场文书
导游词开场白
2015/01/31 职场文书
Django操作cookie的实现
2021/05/26 Python
Redis做数据持久化的解决方案及底层原理
2021/07/15 Redis
Python使用Web框架Flask开发项目
2022/06/01 Python