JavaScript 利用StringBuffer类提升+=拼接字符串效率


Posted in Javascript onNovember 24, 2009
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title></title> 
</head> 
<body> 
</body> 
<script type="text/javascript"><!-- 
var str = 'hello'; 
str += 'world'; 
//每次完成字符串连接都会执行步骤2到6步 
//实际上,这段代码在幕后执行的步骤如下: 
/**//* 
1.创建存储'hello'的字符串 
2.创建存储'world'的字符串 
3.创建存储链接结果的字符串 
4.把str的当前内容复制到结果中 
5.把'world'复制到结果中 
6.更新str,使它指向结果 
*/ //为了提高性能最好使用数组方法拼接字符串 
//创建一个StringBuffer类 
function StringBuffer(){ 
this.__strings__ = []; 
}; 
StringBuffer.prototype.append = function(str){ 
this.__strings__.push(str); 
}; 
StringBuffer.prototype.toString = function(){ 
return this.__strings__.join(''); 
}; 
//调用StringBuffer类,实现拼接字符串 
//每次完成字符串连接都会执行步骤2步 
//实际上,这段代码在幕后执行的步骤如下: 
/**//* 
1.创建存储结果的字符串 
2.把每个字符串复制到结果中的合适位置 
*/ 
var buffer = new StringBuffer(); 
buffer.append('hello '); 
buffer.append('world'); 
var result = buffer.toString(); 
//用StringBuffer类比使用+=节省50%~66%的时间 
//--> 
</script> 
</html>
Javascript 相关文章推荐
Bookmarklet实现启动jQuery(模仿 云输入法)
Sep 15 Javascript
JQuery入门—JQuery程序的代码风格详细介绍
Jan 03 Javascript
Javascript中 关于prototype属性实现继承的原理图
Apr 16 Javascript
往光标所在位置插入值的js代码
Sep 22 Javascript
AngularJS的内置过滤器详解
May 14 Javascript
JS+canvas绘制的动态机械表动画效果
Sep 12 Javascript
详解在Vue中有条件地使用CSS类
Sep 30 Javascript
使用clipboard.js实现复制功能的示例代码
Oct 16 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
Dec 01 Javascript
JS/HTML5游戏常用算法之追踪算法实例详解
Dec 12 Javascript
js实现跟随鼠标移动的小球
Aug 26 Javascript
如何阻止小程序遮罩层下方图层滚动
Sep 05 Javascript
asp.net下利用js实现返回上一页的实现方法小集
Nov 24 #Javascript
dropdownlist之间的互相联动实现(显示与隐藏)
Nov 24 #Javascript
根据鼠标的位置动态的控制层的位置
Nov 24 #Javascript
js cookies实现简单统计访问次数
Nov 24 #Javascript
js获取图片长和宽度的代码
Nov 24 #Javascript
写出更好的JavaScript程序之undefined篇(中)
Nov 23 #Javascript
通过身份证号得到出生日期和性别的js代码
Nov 23 #Javascript
You might like
封装ThinkPHP的一个文件上传方法实例
2014/10/31 PHP
ThinkPHP控制器详解
2015/07/27 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
javascript instanceof 与typeof使用说明
2010/01/11 Javascript
jQuery EasyUI API 中文文档 搜索框
2011/09/29 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
使用Chart.js图表库制作漂亮的响应式表单
2015/10/28 Javascript
js实现兼容IE、Firefox的图片缩放代码
2015/12/08 Javascript
jQuery Ajax 全局调用封装实例代码详解
2016/06/02 Javascript
ES6概念 Symbol.keyFor()方法
2016/12/25 Javascript
js实现下一页页码效果
2017/03/07 Javascript
浅谈struts1 &amp; jquery form 文件异步上传
2017/05/25 jQuery
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
基于BootStrap实现简洁注册界面
2017/07/20 Javascript
ui-router中使用ocLazyLoad和resolve的具体方法
2017/10/18 Javascript
详解Vue.js和layui日期控件冲突问题解决办法
2019/07/25 Javascript
原生JS封装拖动验证滑块的实现代码示例
2020/06/01 Javascript
[49:11]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.20
2020/12/23 DOTA
Python模块学习 re 正则表达式
2011/05/19 Python
浅谈flask截获所有访问及before/after_request修饰器
2018/01/18 Python
python实现手机通讯录搜索功能
2018/02/22 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
如何基于Python按行合并两个txt
2020/11/03 Python
用CSS3实现背景渐变的方法
2015/07/14 HTML / CSS
HTML+CSS3+JS 实现的下拉菜单
2020/11/25 HTML / CSS
ProBikeKit德国:在线公路自行车专家
2018/06/03 全球购物
加拿大在线眼镜零售商:SmartBuyGlasses加拿大
2019/05/25 全球购物
Tenstickers法国:墙贴和装饰贴纸
2019/08/26 全球购物
餐饮业会计岗位职责
2013/12/19 职场文书
庆祝教师节活动方案
2014/01/31 职场文书
2014卖家双十一活动策划书
2014/09/29 职场文书
紧急迫降观后感
2015/06/15 职场文书
2015年教师节主持词
2015/07/03 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书
Python turtle编写简单的球类小游戏
2022/03/31 Python