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代码
Aug 05 Javascript
在IE浏览器中resize事件执行多次的解决方法
Jul 12 Javascript
node.js实现BigPipe详解
Dec 05 Javascript
TypeScript具有的几个不同特质
Apr 07 Javascript
JS学习之表格的排序简单实例
May 16 Javascript
js 动态给元素添加、移除事件的实现方法
Jul 19 Javascript
vue.js开发环境安装教程
Mar 17 Javascript
JS中去掉array中重复元素的方法
May 26 Javascript
react中实现搜索结果中关键词高亮显示
Jul 31 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
Nov 02 Javascript
uni-app微信小程序登录授权的实现
May 22 Javascript
jquery实现异步文件上传ajaxfileupload.js
Oct 23 jQuery
转换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
星际原理概述
2020/03/04 星际争霸
PHP根据IP判断地区名信息的示例代码
2014/03/03 PHP
PHP文件与目录操作示例
2016/12/24 PHP
Javascript核心读书有感之语句
2015/02/11 Javascript
jQuery网页选项卡插件rTabs用法实例分析
2015/08/26 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
jQuery验证插件validate使用方法详解
2020/09/13 Javascript
webpack中引用jquery的简单实现
2016/06/08 Javascript
很棒的js Tab选项卡切换效果
2016/08/30 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
js字符串引用的两种方式(必看)
2016/09/18 Javascript
jquery中用jsonp实现搜索框功能
2016/10/18 Javascript
微信小程序开发之入门实例教程篇
2017/03/07 Javascript
js调用刷新界面的几种方式
2017/05/03 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
vue-cli如何添加less 以及sass
2017/07/06 Javascript
深入理解Vue transition源码分析
2017/07/30 Javascript
vue proxyTable 接口跨域请求调试的示例
2017/09/12 Javascript
vue中axios的二次封装实例讲解
2019/10/14 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
2020/03/17 Javascript
实现一个Vue自定义指令懒加载的方法示例
2020/06/04 Javascript
python的id()函数介绍
2013/02/10 Python
利用matplotlib+numpy绘制多种绘图的方法实例
2017/05/03 Python
python opencv判断图像是否为空的实例
2019/01/26 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
2019/03/05 Python
Python中base64与xml取值结合问题
2019/12/22 Python
pytorch点乘与叉乘示例讲解
2019/12/27 Python
Python API 操作Hadoop hdfs详解
2020/06/06 Python
python 日志模块logging的使用场景及示例
2021/01/04 Python
小学生新学期寄语
2014/01/19 职场文书
微电影大赛策划方案
2014/06/05 职场文书
2014年国庆节演讲稿精选范文1500字
2014/09/25 职场文书
无违反计划生育证明格式
2015/06/24 职场文书
Nginx下配置Https证书详细过程
2021/04/01 Servers
MybatisPlus EntityWrapper如何自定义SQL
2022/03/22 Java/Android
教你在 Java 中实现 Dijkstra 最短路算法的方法
2022/04/08 Java/Android