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 相关文章推荐
window.onload和$(function(){})的区别介绍
Oct 30 Javascript
JS判断不能为空实例代码
Nov 26 Javascript
用jquery修复在iframe下的页面锚点失效问题
Aug 22 Javascript
js实现鼠标悬浮给图片加边框的方法
Jan 30 Javascript
JS实现很实用的对联广告代码(可自适应高度)
Sep 18 Javascript
JavaScript函数的调用以及参数传递
Oct 21 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
Dec 20 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
Aug 26 Javascript
vue项目中添加单元测试的方法
Jul 21 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
Jan 23 Javascript
使用vue完成微信公众号网页小记(推荐)
Apr 28 Javascript
javascript实现点击产生随机图形
Jan 25 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
MySQL 日期时间函数常用总结
2012/06/12 PHP
10 个经典PHP函数
2013/10/17 PHP
php解决和避免form表单重复提交的几种方法
2016/08/31 PHP
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
2009/07/19 Javascript
JS与框架页的操作代码
2010/01/17 Javascript
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
2010/03/21 Javascript
JS中的prototype与面向对象的实例讲解
2013/05/22 Javascript
jquery动态增加text元素以及删除文本内容实例代码
2013/07/01 Javascript
laytpl 精致巧妙的JavaScript模板引擎
2014/08/29 Javascript
给angular加上动画效遇到的问题总结
2016/02/17 Javascript
超实用的javascript时间处理总结
2016/08/16 Javascript
有关文件上传 非ajax提交 得到后台数据问题
2016/10/12 Javascript
Three.js基础部分学习
2017/01/08 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
原生JavaScript实现AJAX、JSONP
2017/02/07 Javascript
jQuery+CSS3实现点赞功能
2017/03/13 Javascript
详解vue模拟加载更多功能(数据追加)
2017/06/23 Javascript
js下拉菜单生成器dropMenu使用方法详解
2017/08/01 Javascript
探索Vue高阶组件的使用
2018/01/08 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
Webpack path与publicPath的区别详解
2018/05/03 Javascript
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
Vue双向数据绑定(MVVM)的原理
2020/10/03 Javascript
老生常谈Python之装饰器、迭代器和生成器
2017/07/26 Python
python bmp转换为jpg 并删除原图的方法
2018/10/25 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
Python for i in range ()用法详解
2020/09/18 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
2020/11/19 Python
详解移动端Html5页面中1px边框的几种解决方法
2018/07/24 HTML / CSS
俄罗斯家居用品购物网站:Евродом
2020/11/21 全球购物
美术师范毕业生自荐信
2013/11/16 职场文书
一年级班主任寄语
2014/01/19 职场文书
导游词之西安骊山
2019/12/03 职场文书
Python 解决空列表.append() 输出为None的问题
2021/05/23 Python