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 相关文章推荐
如何用javascript控制上传文件的大小
Oct 26 Javascript
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
Feb 15 Javascript
jQuery提交表单ajax查询实例代码
Oct 07 Javascript
jquery 页面滚动到底部自动加载插件集合
Jan 31 Javascript
node.js中的path.join方法使用说明
Dec 08 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
Jan 30 Javascript
JavaScript实现点击按钮字体放大、缩小
Feb 29 Javascript
如何在vue里面优雅的解决跨域(路由冲突问题)
Jan 20 Javascript
vue2.0结合Element-ui实战案例
Mar 06 Javascript
JavaScript实现密码强度实时验证
Mar 18 Javascript
js实现消灭星星(web简易版)
Mar 24 Javascript
javascript遍历对象的五种方式实例代码
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
模拟xcopy的函数
2006/10/09 PHP
详细介绍PHP应用提速面面观
2006/10/09 PHP
PHP得到mssql的存储过程的输出参数功能实现
2012/11/23 PHP
php增删改查示例自己写的demo
2013/09/04 PHP
PHP+Ajax实时自动检测是否联网的方法
2015/07/01 PHP
php目录拷贝实现方法
2015/07/10 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
2019/08/03 PHP
实用javaScript技术-屏蔽类
2006/08/15 Javascript
js中判断Object、Array、Function等引用类型对象是否相等
2012/08/29 Javascript
jQuery控制输入框只能输入数值的小例子
2013/03/20 Javascript
JQueryEasyUI datagrid框架的基本使用
2013/04/08 Javascript
Jquery 切换不同图片示例代码
2013/12/05 Javascript
AngularJS中的过滤器filter用法完全解析
2016/04/22 Javascript
jQuery基本选择器和层次选择器学习使用
2017/02/27 Javascript
jQuery正则验证注册页面经典实例
2017/06/10 jQuery
JavaScript中Dom操作实例详解
2019/07/08 Javascript
jquery实现抽奖功能
2020/10/22 jQuery
[00:15]TI9地铁玩家打卡
2019/08/11 DOTA
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
tf.truncated_normal与tf.random_normal的详细用法
2018/03/05 Python
Python安装图文教程 Pycharm安装教程
2018/03/27 Python
python利用platform模块获取系统信息
2020/10/09 Python
Python模拟登录和登录跳转的参考示例
2020/10/30 Python
html5录音功能实战示例
2019/03/25 HTML / CSS
销售业务员岗位职责
2014/01/29 职场文书
学校消防安全制度
2014/01/30 职场文书
学习张林森心得体会
2014/09/10 职场文书
大一新生检讨书
2014/10/29 职场文书
小学班主任个人总结
2015/03/03 职场文书
面试通知邮件
2015/04/20 职场文书
【HBU】数据库第四周 单表查询
2021/04/05 SQL Server
Js类的构建与继承案例详解
2021/09/15 Javascript
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
2022/02/12 Servers
基于Python编写一个监控CPU的应用系统
2022/06/25 Python