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 相关文章推荐
jQuery JSON的解析方式分享
Apr 05 Javascript
使用Java实现简单的server/client回显功能的方法介绍
May 03 Javascript
浅析LigerUi开发中谨慎载入common.css文件
Jul 09 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
Sep 18 Javascript
Svg.js实例教程及使用手册详解(一)
May 16 Javascript
JS仿百度自动下拉框模糊匹配提示
Jul 25 Javascript
学习vue.js计算属性
Dec 03 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
Jan 11 Javascript
在vue中实现简单页面逆传值的方法
Nov 27 Javascript
vue单页应用在页面刷新时保留状态数据的方法
Sep 21 Javascript
angularJs select绑定的model取不到值的解决方法
Oct 08 Javascript
js实现unicode码字符串与utf8字节数据互转详解
Mar 21 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 智能404跳转代码,适合换域名没改变目录的网站
2010/06/04 PHP
zf框架的registry(注册表)使用示例
2014/03/13 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
2018/04/04 PHP
js获取div高度的代码
2008/08/09 Javascript
javascript 检测浏览器类型和版本的代码
2009/09/15 Javascript
js的Prototype属性解释及常用方法
2014/05/08 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
2015/08/24 Javascript
jQuery+CSS3实现点赞功能
2017/03/13 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
vue2项目使用sass的示例代码
2017/06/28 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
详解Angular结合zTree异步加载节点数据
2018/01/20 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
2018/03/05 Javascript
jQuery实现动画、消失、显现、渐出、渐入效果示例
2018/09/06 jQuery
nodejs高大上的部署方式(PM2)
2018/09/11 NodeJs
详解vuex 渐进式教程实例代码
2018/11/27 Javascript
如何解决webpack-dev-server代理常切换问题
2019/01/09 Javascript
纯js+css实现在线时钟
2020/08/18 Javascript
[01:25]2015国际邀请赛最佳短片奖——斧王《拆塔英雄:天赋异禀》
2015/09/22 DOTA
Python实现自动发送邮件功能
2021/03/02 Python
解决python读取几千万行的大表内存问题
2018/06/26 Python
Django 数据库同步操作技巧详解
2019/07/19 Python
python Django编写接口并用Jmeter测试的方法
2019/07/31 Python
获取Pytorch中间某一层权重或者特征的例子
2019/08/17 Python
详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件
2019/08/23 Python
Python如何根据时间序列数据作图
2020/05/12 Python
django restframework serializer 增加自定义字段操作
2020/07/15 Python
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
飞利浦美国官网:Philips美国
2020/02/28 全球购物
计算机毕业生求职信
2014/06/10 职场文书
四风问题对照检查材料
2014/09/22 职场文书
学生实习证明范文
2014/09/28 职场文书
搞笑的婚礼主持词
2015/06/29 职场文书
导游词之云南-元阳梯田
2019/10/08 职场文书
css如何把元素固定在容器底部的四种方式
2022/06/16 HTML / CSS