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 替换功能函数,用正则表达式解决,js的全部替换
Dec 08 Javascript
JS高级笔记
Jul 13 Javascript
javascript学习笔记(七) js函数介绍
Jun 19 Javascript
判断客户浏览器是否支持cookie的示例代码
Dec 23 Javascript
关于JavaScript对象的动态选择及遍历对象
Mar 10 Javascript
用jquery的方法制作一个简单的导航栏
Jun 23 Javascript
jQuery实现标题有打字效果的焦点图代码
Nov 16 Javascript
js实现导航栏中英文切换效果
Jan 16 Javascript
JS按条件 serialize() 对应标签的使用方法
Jul 24 Javascript
在 Node.js 中使用 async 函数的方法
Nov 17 Javascript
Jquery $.map使用方法实例详解
Sep 01 jQuery
如何在Vue项目中添加接口监听遮罩
Jan 25 Vue.js
转换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
绿山咖啡和蓝山咖啡
2021/03/04 新手入门
实用函数3
2007/11/08 PHP
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
2011/11/21 PHP
深入PHP empty(),isset(),is_null()的实例测试详解
2013/06/06 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
用window.location.href实现刷新另个框架页面
2007/03/07 Javascript
用javascript实现在小方框中浏览大图的代码
2007/08/14 Javascript
Js 本页面传值实现代码
2009/05/17 Javascript
Js 中debug方式
2010/02/07 Javascript
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
2010/03/08 Javascript
javascript的回调函数应用示例
2014/02/20 Javascript
javascript 模拟坦克大战游戏(html5版)附源码下载
2014/04/08 Javascript
JQuery菜单效果的两个实例讲解(3)
2015/09/17 Javascript
vue.js事件处理器是什么
2017/03/20 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
React Navigation 使用中遇到的问题小结
2018/05/08 Javascript
用JS实现根据当前时间随机生成流水号或者订单号
2018/05/31 Javascript
webpack的tree shaking的实现方法
2019/09/18 Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
2020/03/17 Javascript
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
Python SQLite3数据库操作类分享
2014/06/10 Python
Python实现全局变量的两个解决方法
2014/07/03 Python
在Python的Django框架中加载模版的方法
2015/07/16 Python
Python读取指定目录下指定后缀文件并保存为docx
2017/04/23 Python
浅谈Python中带_的变量或函数命名
2017/12/04 Python
python timestamp和datetime之间转换详解
2017/12/11 Python
python多线程并发实例及其优化
2019/06/27 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
2019/08/07 Python
Python爬取阿拉丁统计信息过程图解
2020/05/12 Python
耐克巴西官方网站:Nike巴西
2016/08/14 全球购物
小学科学教学反思
2014/01/26 职场文书
工作求职自荐信
2014/06/13 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
巾帼文明岗汇报材料
2014/12/24 职场文书
房地产财务经理岗位职责
2015/04/08 职场文书
redis缓存存储Session原理机制
2021/11/20 Redis