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 相关文章推荐
如何确保JavaScript的执行顺序 之实战篇
Mar 03 Javascript
jQuery图片预加载 等比缩放实现代码
Oct 04 Javascript
JQuery 图片的展开和伸缩实例讲解
Apr 18 Javascript
node.js中的fs.rmdir方法使用说明
Dec 16 Javascript
Boostrap实现的登录界面实例代码
Oct 09 Javascript
详解js中Json的语法与格式
Nov 22 Javascript
BootStrap 模态框实现刷新网页并关闭功能
Jan 04 Javascript
深入理解vuex2.0 之 modules
Nov 20 Javascript
Material(包括Material Icon)在Angular2中的使用详解
Feb 11 Javascript
ES6 fetch函数与后台交互实现
Nov 14 Javascript
layui实现显示数据表格、搜索和修改功能示例
Jun 03 Javascript
解决vue侦听器watch,调用this时出现undefined的问题
Oct 30 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模板引擎smarty生成随机数的方法和math函数详解
2014/04/24 PHP
PHP 5.3新增魔术方法__invoke概述
2014/07/23 PHP
PHP编程基本语法快速入门手册
2016/01/07 PHP
PHP单例模式详解及实例代码
2016/12/21 PHP
PDO操作MySQL的基础教程(推荐)
2017/08/18 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
JQuery 无废话系列教程(二) jquery实战篇上
2009/06/23 Javascript
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
jquery命令汇总,方便使用jquery的朋友
2012/06/26 Javascript
JS 实现导航栏悬停效果(续)
2013/09/24 Javascript
JavaScript实现url地址自动检测并添加URL链接示例代码
2013/11/12 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
2015/10/15 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
jQuery选择器之子元素过滤选择器
2017/09/28 jQuery
js 解析 JSON 数据简单示例
2020/04/21 Javascript
vue-socket.io接收不到数据问题的解决方法
2020/05/13 Javascript
Python中optparse模块使用浅析
2015/01/01 Python
python实现线程池的方法
2015/06/30 Python
Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作示例
2018/02/13 Python
python opencv 直方图反向投影的方法
2018/02/24 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
如何利用Anaconda配置简单的Python环境
2019/06/24 Python
Python 爬虫实现增加播客访问量的方法实现
2019/10/31 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
tensorflow模型文件(ckpt)转pb文件的方法(不知道输出节点名)
2020/04/22 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
你应该知道的Python3.6、3.7、3.8新特性小结
2020/05/12 Python
Alpine安装Python3依赖出现的问题及解决方法
2020/12/25 Python
草莓网美国官网:Strawberrynet USA
2016/12/11 全球购物
戴尔英国官网:Dell英国
2017/05/27 全球购物
教师先进事迹材料
2014/12/16 职场文书
先进个人推荐材料
2014/12/29 职场文书
少年犯观后感
2015/06/11 职场文书
房屋买卖定金协议书
2016/03/21 职场文书
2019学校请假条格式及范文
2019/06/25 职场文书