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 相关文章推荐
AeroWindow 基于JQuery的弹出窗口插件
Jun 27 Javascript
jQuery的each终止或跳过示例代码
Dec 12 Javascript
JavaScript取得WEB安全颜色列表的方法
Jul 14 Javascript
基于Bootstrap重置输入框内容按钮插件
May 12 Javascript
javascript中数组和字符串的方法对比
Jul 20 Javascript
js 获取图像缩放后的实际宽高,位置等信息
Mar 07 Javascript
AngularJS使用ocLazyLoad实现js延迟加载
Jul 05 Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
May 17 Javascript
Vue中&quot;This dependency was not found&quot;问题的解决方法
Jun 19 Javascript
vuejs点击class变化的实例
Sep 05 Javascript
微信小程序实现文字跑马灯
May 26 Javascript
js简单的分页器插件代码实例
Sep 11 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中检查文件或目录是否存在的代码小结
2012/10/22 PHP
Mac环境下php操作mysql数据库的方法分享
2015/05/11 PHP
thinkphp框架下实现登录、注册、找回密码功能
2016/04/06 PHP
动态添加js事件实现代码
2009/03/12 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
JavaScript 对任意元素,自定义右键菜单的实现方法
2013/05/08 Javascript
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
使用indexOf等在JavaScript的数组中进行元素查找和替换
2013/09/18 Javascript
Js获取数组最大和最小值示例代码
2013/10/29 Javascript
JavaScript中Cookie操作实例
2015/01/09 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
Python脚本后台运行的几种方式
2015/03/09 Javascript
jquery 插件实现瀑布流图片展示实例
2015/04/03 Javascript
jquery实现网站列表切换效果的2种方法
2016/08/12 Javascript
websocket+node.js实现实时聊天系统问题咨询
2017/05/17 Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
2018/01/16 Javascript
vue项目部署到Apache服务器中遇到的问题解决
2018/08/24 Javascript
layui 富文本编辑器和textarea值的相互传递方法
2019/09/18 Javascript
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python 3.5下xadmin的使用及修复源码bug
2017/05/10 Python
Python实现网站注册验证码生成类
2017/06/08 Python
Python序列化基础知识(json/pickle)
2017/10/19 Python
Python中矩阵创建和矩阵运算方法
2018/08/04 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
2018/12/19 Python
python+numpy按行求一个二维数组的最大值方法
2019/07/09 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
销售高级职员求职信
2013/10/29 职场文书
人力资源经理自我评价
2014/01/04 职场文书
绩效工资分配方案
2014/01/18 职场文书
群众路线教育实践活动批评与自我批评
2014/09/15 职场文书
2015年英语教学工作总结
2015/05/25 职场文书
大学军训通讯稿
2015/07/18 职场文书
观看安全警示教育片心得体会
2016/01/15 职场文书