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的倒计时实现代码
May 30 Javascript
js中的referrer返回上一页使用介绍
Sep 26 Javascript
深入理解Javascript里的依赖注入
Mar 19 Javascript
JavaScript使用ActiveXObject访问Access和SQL Server数据库
Apr 02 Javascript
JQUERY表单暂存功能插件分享
Feb 23 Javascript
基于jQuery实现咖啡订单管理简单应用
Feb 10 Javascript
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
Jun 16 Javascript
vue 设置proxyTable参数进行代理跨域
Apr 09 Javascript
JS根据json数组多个字段排序及json数组常用操作
Jun 06 Javascript
jQuery实现鼠标移入显示蒙版效果
Jan 11 jQuery
js实现盒子滚动动画效果
Aug 09 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
Oct 24 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
LotusPhp笔记之:Cookie组件的使用详解
2013/05/06 PHP
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
2014/01/14 PHP
作为程序员必知的16个最佳PHP库
2015/12/09 PHP
php文件上传类完整实例
2016/05/14 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
2016/08/19 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
Laravel框架Request、Response及Session操作示例
2019/05/06 PHP
thinkphp3.2框架中where条件查询用法总结
2019/08/13 PHP
图片完美缩放
2006/09/07 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
2015/08/18 Javascript
浅谈javascript的Touch事件
2015/09/27 Javascript
百度搜索框智能提示案例jsonp
2016/11/28 Javascript
angularjs封装$http为factory的方法
2017/05/18 Javascript
浅析JS抽象工厂模式
2017/12/14 Javascript
nodejs使用redis作为缓存介质实现的封装缓存类示例
2018/02/07 NodeJs
vue使用@scroll监听滚动事件时,@scroll无效问题的解决方法详解
2019/10/15 Javascript
JS数组方法shift()、unshift()用法实例分析
2020/01/18 Javascript
Vue export import 导入导出的多种方式与区别介绍
2020/02/12 Javascript
微信小程序选择图片控件
2021/01/19 Javascript
python操作redis的方法
2015/07/07 Python
对Python 简单串口收发GUI界面的实例详解
2019/06/12 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
解决Keras 自定义层时遇到版本的问题
2020/06/16 Python
Python面向对象实现方法总结
2020/08/12 Python
python中openpyxl和xlsxwriter对Excel的操作方法
2021/03/01 Python
享誉全球的多元化时尚精品购物平台:Farfetch发发奇(支持中文)
2017/08/08 全球购物
办公设备采购方案
2014/03/16 职场文书
淘宝店策划方案
2014/06/07 职场文书
中秋节国旗下演讲稿
2014/09/13 职场文书
2014县委书记党的群众路线教育实践活动对照检查材料思想汇报
2014/09/22 职场文书
2014年妇女工作总结
2014/12/06 职场文书
涨价通知怎么写
2015/04/23 职场文书
法人身份证明书
2015/06/18 职场文书
运动会通讯稿300字
2015/07/20 职场文书
写作技巧:优秀文案必备的3种结构
2019/08/19 职场文书
详解SQL的窗口函数
2022/04/21 Oracle