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 相关文章推荐
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
Feb 05 Javascript
Jquery iframe内部出滚动条
Feb 11 Javascript
js格式化金额可选是否带千分位以及保留精度
Jan 28 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
Feb 21 Javascript
在 Express 中使用模板引擎
Dec 10 Javascript
jQuery插件 Jqplot图表实例
Jun 18 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
Apr 20 Javascript
Bootstrap Table使用整理(一)
Jun 09 Javascript
详解AngularJS ng-class样式切换
Jun 27 Javascript
vue2.0在table中实现全选和反选的示例代码
Nov 04 Javascript
ES6 Symbol数据类型的应用实例分析
Jun 26 Javascript
微信小程序框架的页面布局代码
Aug 17 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
php中的比较运算符详解
2013/10/28 PHP
php一行代码获取文件后缀名实例分析
2014/11/12 PHP
PHP5.3以上版本安装ZendOptimizer扩展
2015/03/27 PHP
PHP读取大文件的多种方法介绍
2016/04/04 PHP
Yii2中datetime类的使用
2016/12/17 PHP
php实现的表单验证类完整示例
2019/08/13 PHP
php异常处理捕获错误整理
2019/09/23 PHP
Javascript中的相等与不等运算
2010/04/25 Javascript
jquery如何获取复选框的值
2013/12/12 Javascript
js判断undefined类型示例代码
2014/02/10 Javascript
自己使用jquery写的一个无缝滚动的插件
2014/04/30 Javascript
js遍历map javaScript遍历map的简单实现
2016/08/26 Javascript
AngularJS删除路由中的#符号的方法
2016/09/20 Javascript
jQuery实现两列等高并自适应高度
2016/12/22 Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
2017/02/15 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
2020/04/08 Javascript
Python实现全角半角字符互转的方法
2016/11/28 Python
Python判断两个对象相等的原理
2017/12/12 Python
python通过zabbix api获取主机
2018/09/17 Python
对python判断是否回文数的实例详解
2019/02/08 Python
python 弹窗提示警告框MessageBox的实例
2019/06/18 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
python实现猜数游戏
2020/03/27 Python
Python多线程实现支付模拟请求过程解析
2020/04/21 Python
CSS实现雨滴动画效果的实例代码
2019/10/08 HTML / CSS
奥地利智能家居和智能生活网上商店:tink.at
2019/10/07 全球购物
技校毕业生自荐书
2014/05/23 职场文书
美术学专业求职信
2014/07/23 职场文书
2014年银行信贷员工作总结
2014/12/08 职场文书
五四青年节比赛演讲稿
2015/03/18 职场文书
2015年超市工作总结
2015/04/09 职场文书
订货会主持词
2015/07/01 职场文书
MySQL root密码的重置方法
2021/04/21 MySQL
如何理解python接口自动化之logging日志模块
2021/06/15 Python
vue使用echarts实现折线图
2022/03/21 Vue.js