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 相关文章推荐
Firefox getBoxObjectFor getBoundingClientRect联系
Oct 26 Javascript
ExtJS 下拉多选框lovcombo
May 19 Javascript
JavaScript实现找出数组中最长的连续数字序列
Sep 03 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
Mar 05 Javascript
浅谈JavaScript 标准对象
Jun 02 Javascript
jQuery插件编写步骤详解
Jun 03 Javascript
Bootstrap前端开发案例二
Jun 17 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
Feb 05 Javascript
纯js实现隔行变色效果
Nov 29 Javascript
JS获取月的第几周和年的第几周实例代码
Dec 05 Javascript
layui点击弹框页面 表单请求的方法
Sep 21 Javascript
对vuex中getters计算过滤操作详解
Nov 06 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
PHP静态新闻列表自动生成代码
2007/06/14 PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
2011/03/28 PHP
phpcms中的评论样式修改方法
2016/10/21 PHP
PHP将身份证正反面两张照片合成一张图片的代码
2017/04/08 PHP
关于PHP求解三数之和问题详析
2020/11/09 PHP
解决js中window.open弹出的是上次的缓存页面问题
2013/12/29 Javascript
JavaScript中奇葩的假值示例应用
2014/03/11 Javascript
jquery实现的美女拼图游戏实例
2015/05/04 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
2017/01/13 Javascript
bootstrap IE8 兼容性处理
2017/03/22 Javascript
Vue.js实现按钮的动态绑定效果及实现代码
2017/08/21 Javascript
Javascript刷新页面的实例
2017/09/23 Javascript
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
python判断列表的连续数字范围并分块的方法
2018/11/16 Python
对python中xlsx,csv以及json文件的相互转化方法详解
2018/12/25 Python
python matplotlib实现双Y轴的实例
2019/02/12 Python
Python3.5内置模块之time与datetime模块用法实例分析
2019/04/27 Python
ipython和python区别详解
2019/06/26 Python
pandas实现导出数据的四种方式
2020/12/13 Python
H&M美国官网:欧洲最大的服饰零售商
2016/09/07 全球购物
回馈慈善的设计师太阳镜:DIFF eyewear
2019/10/17 全球购物
澳大利亚在线划船、露营和钓鱼商店:BCF Australia
2020/03/22 全球购物
怎样写好自荐信和推荐信
2013/12/26 职场文书
《听鱼说话》教学反思
2014/02/15 职场文书
单位委托书范本
2014/04/04 职场文书
小学数学教研活动总结
2014/07/01 职场文书
美术专业自荐信
2014/07/07 职场文书
群众路线对照检查材料
2014/09/22 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
村党支部书记个人对照材料汇报
2014/10/26 职场文书
2019年个人工作总结范文
2019/03/25 职场文书
掌握一个领域知识,高效学习必备方法
2019/08/08 职场文书
Python基础知识之变量的详解
2021/04/14 Python
教你怎么用Python实现多路径迷宫
2021/04/29 Python
nginx lua 操作 mysql
2022/05/15 Servers