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从头学起(基本数据类型和引用类型的参数传递详细分析)
Feb 16 Javascript
客户端js判断文件类型和文件大小即限制上传大小
Nov 20 Javascript
js获取判断上传文件后缀名的示例代码
Feb 19 Javascript
js实现一个链接打开两个链接地址的方法
May 12 Javascript
javascript拖拽效果延伸学习
Apr 04 Javascript
JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
Apr 29 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
Jun 24 Javascript
VueJs与ReactJS和AngularJS的异同点
Dec 12 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
May 12 Javascript
JS回调函数基本定义与用法实例分析
May 24 Javascript
Vue按需加载的具体实现
Dec 02 Javascript
vue+vant实现购物车全选和反选功能
Nov 17 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
php使用ICQ网关发送手机短信
2013/10/30 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
2010/03/27 Javascript
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
2010/11/20 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
2013/03/18 Javascript
在javascript中关于节点内容加强
2013/04/11 Javascript
邮箱下拉自动填充选择示例代码附图
2014/04/03 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
基于jquery实现省市区三级联动效果
2015/12/25 Javascript
简述Matlab中size()函数的用法
2016/03/20 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
2016/05/30 Javascript
JS实现根据文件字节数返回文件大小的方法
2016/08/02 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
js编写三级联动简单案例
2016/12/21 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
JavaScript面试出现频繁的一些易错点整理
2018/03/29 Javascript
在Web关闭页面时发送Ajax请求的实现方法
2019/03/07 Javascript
JavaScript使用表单元素验证表单的示例代码
2019/08/20 Javascript
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
2019/11/18 jQuery
彻底搞懂并解决vue-cli4中图片显示的问题实现
2020/08/31 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
2020/10/29 Javascript
Javascript中window.name属性详解
2020/11/19 Javascript
详细讲解Python中的文件I/O操作
2015/05/24 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
2019/02/22 Python
使用django的ORM框架按月统计近一年内的数据方法
2019/07/18 Python
Python参数传递机制传值和传引用原理详解
2020/05/22 Python
python 实现单例模式的5种方法
2020/09/23 Python
妇科医生自荐信
2013/11/05 职场文书
力学专业毕业生自荐信
2013/11/17 职场文书
拾金不昧表扬信范文
2014/01/11 职场文书
祖国在我心中演讲稿600字
2014/05/04 职场文书
先进典型事迹材料
2014/12/29 职场文书
宾馆客房管理制度
2015/08/06 职场文书
Python字典和列表性能之间的比较
2021/06/07 Python