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 设计模式 富有表现力的Javascript(一)
May 26 Javascript
纯js实现背景图片切换效果代码
Nov 14 Javascript
javascript数组去重方法终极总结
Jun 05 Javascript
简易的投票系统以及js刷票思路和方法
Apr 07 Javascript
javascript中的previousSibling和nextSibling的正确用法
Sep 16 Javascript
Ajax与服务器(JSON)通信实例代码
Nov 05 Javascript
JavaScript组件开发之输入框加候选框
Mar 10 Javascript
JS获取字符对应的ASCII码实例
Sep 10 Javascript
微信小程序页面生命周期详解
Jan 31 Javascript
vue悬浮可拖拽悬浮按钮的实例代码
Aug 20 Javascript
layui table表格数据的新增,修改,删除,查询,双击获取行数据方式
Nov 14 Javascript
Jquery+javascript实现支付网页数字键盘
Dec 21 jQuery
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判断输入不超过mysql的varchar字段的长度范围
2011/06/24 PHP
通过缓存数据库结果提高PHP性能的原理介绍
2012/09/05 PHP
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
php单一接口的实现方法
2015/06/20 PHP
学习PHP的数组总结【经验】
2016/05/05 PHP
改进UCHOME的记录发布,增强可访问性用户体验
2011/01/17 Javascript
javascript制作的滑动图片菜单
2015/05/15 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
浅谈Web页面向后台提交数据的方式和选择
2016/09/23 Javascript
详解vue-cli 构建项目 vue-cli请求后台接口 vue-cli使用axios、sass、swiper
2018/05/28 Javascript
彻底弄懂 JavaScript 执行机制
2018/10/23 Javascript
微信小程序云开发如何使用npm安装依赖
2019/05/18 Javascript
小程序实现简单语音聊天的示例代码
2020/07/24 Javascript
Python获取Windows或Linux主机名称通用函数分享
2014/11/22 Python
python基础之包的导入和__init__.py的介绍
2018/01/08 Python
Python设计模式之代理模式简单示例
2018/01/09 Python
Ubuntu下Anaconda和Pycharm配置方法详解
2019/06/14 Python
python 批量修改 labelImg 生成的xml文件的方法
2019/09/09 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
2019/10/11 Python
使用python写一个自动浏览文章的脚本实例
2019/12/05 Python
如何基于Python实现自动扫雷
2020/01/06 Python
Python语法之精妙的十个知识点(装B语法)
2020/01/18 Python
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
python和php学习哪个更有发展
2020/06/17 Python
HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题
2021/01/19 HTML / CSS
北美三大旅游网站之一:Travelocity加拿大
2016/08/20 全球购物
美国购买当代和现代家具网站:MODTEMPO
2018/07/20 全球购物
什么是makefile? 如何编写makefile?
2012/08/08 面试题
单位实习证明怎么写
2014/01/17 职场文书
元旦趣味活动方案
2014/08/22 职场文书
就业协议书怎么填
2014/09/15 职场文书
学生上课看漫画的检讨书
2014/09/26 职场文书
2014年纳税评估工作总结
2014/12/23 职场文书
2016年教师学习教师法心得体会
2016/01/20 职场文书
java executor包参数处理功能 
2022/02/15 Java/Android
Redis基本数据类型String常用操作命令
2022/06/01 Redis