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 相关文章推荐
Tab页界面,用jQuery及Ajax技术实现
Sep 21 Javascript
JavaScript中的一些定位属性[图解]
Jul 14 Javascript
Javascript中查找不以XX字符结尾的单词示例代码
Oct 15 Javascript
jquery中获得元素尺寸和坐标的方法整理
May 18 Javascript
JQuery实现带排序功能的权限选择实例
May 18 Javascript
js全选按钮的实现方法
Nov 17 Javascript
jquery.cookie.js用法实例详解
Dec 25 Javascript
两行代码轻松搞定JavaScript日期验证
Aug 03 Javascript
js表单元素checked、radio被选中的几种方法(详解)
Aug 22 Javascript
TypeScript学习之强制类型的转换
Dec 27 Javascript
js tab栏切换代码实例解析
Sep 03 Javascript
js在HTML的三种引用方式详解
Aug 29 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
合并ThinkPHP配置文件以消除代码冗余的实现方法
2014/07/22 PHP
PHP让数组中有相同值的组成新的数组实例
2017/12/31 PHP
基于jquery的合并table相同单元格的插件(精简版)
2011/04/05 Javascript
自定义ExtJS控件之下拉树和下拉表格附源码
2013/10/15 Javascript
详细分析JavaScript函数定义
2015/07/16 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
2017/01/03 Javascript
分享一道关于闭包、bind和this的面试题
2017/02/20 Javascript
Vue实现一个返回顶部backToTop组件
2017/07/25 Javascript
jquery+css实现简单的图片轮播效果
2017/08/07 jQuery
详解JS数组Reduce()方法详解及高级技巧
2017/08/18 Javascript
vue router-link传参以及参数的使用实例
2017/11/10 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
2018/01/09 Javascript
js for终止循环 跳出多层循环
2018/10/04 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
[02:50]【扭转乾坤,只此一招】DOTA2全新版本永雾林渊开启新篇章
2020/12/24 DOTA
利用Python代码实现一键抠背景功能
2019/12/29 Python
python matplotlib实现将图例放在图外
2020/04/17 Python
Python创建临时文件和文件夹
2020/08/05 Python
基于OpenCV的网络实时视频流传输的实现
2020/11/15 Python
CSS3实现自定义Checkbox特效实例代码
2017/04/24 HTML / CSS
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
Mavi牛仔裤美国官网:土耳其著名牛仔品牌
2016/09/24 全球购物
教师求职信范文分享
2013/12/27 职场文书
动漫专业高职生职业生涯规划书
2014/02/15 职场文书
新学期开学演讲稿
2014/05/24 职场文书
2014年党支部承诺书
2014/05/30 职场文书
应届生找工作求职信
2014/06/24 职场文书
2014年科技工作总结
2014/11/26 职场文书
前台文员岗位职责
2015/02/04 职场文书
丧事酒宴答谢词
2015/09/30 职场文书
2017年大学生寒假社会实践活动总结
2016/04/06 职场文书
简历中的自我评价应该这样写!
2019/07/12 职场文书
经典励志格言:每日一句,让你每天充满能量
2019/08/16 职场文书
导游词之无锡东林书院
2019/12/11 职场文书
Python使用MapReduce进行简单的销售统计
2022/04/22 Python