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 相关文章推荐
js展开闭合效果演示代码
Jul 24 Javascript
动态读取JSON解析键值对的方法
Jun 03 Javascript
Window.Open打开窗体和if嵌套代码
Apr 15 Javascript
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
Jan 17 Javascript
微信小程序获取微信运动步数的实例代码
Jul 20 Javascript
微信小程序实现循环动画效果
Jul 16 Javascript
vue响应式系统之observe、watcher、dep的源码解析
Apr 09 Javascript
Node.js实现一个HTTP服务器的方法示例
May 13 Javascript
vue获取验证码倒计时组件
Aug 26 Javascript
ES6实现图片切换特效代码
Jan 14 Javascript
关于JavaScript中异步/等待的用法与理解
Nov 18 Javascript
vue3.0+vue-router+element-plus初实践
Dec 02 Vue.js
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的addAll支持的最大数据量
2015/02/03 PHP
laravel执行php artisan migrate报错的解决方法
2019/10/09 PHP
让iframe框架网页在任何浏览器下自动伸缩
2006/08/18 Javascript
JSON扫盲帖 JSON.as类教程
2009/02/16 Javascript
JavaScript 继承详解 第一篇
2009/08/30 Javascript
DOM Scripting中的图片切换[兼容Firefox]
2010/06/12 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
用jQuery toggleClass 实现鼠标移上变色
2014/05/14 Javascript
JS生成不重复随机数组的函数代码
2014/06/10 Javascript
你有必要知道的25个JavaScript面试题
2015/12/29 Javascript
jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
2016/06/02 Javascript
String字符串截取的四种方式总结
2016/11/28 Javascript
webpack构建换肤功能的思路详解
2017/11/27 Javascript
JavaScript实现二叉树定义、遍历及查找的方法详解
2017/12/20 Javascript
在vue中通过axios异步使用echarts的方法
2018/01/13 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
vue webpack实用技巧总结
2018/04/24 Javascript
微信小程序仿朋友圈发布动态功能
2018/07/15 Javascript
[01:10]DOTA2亚洲邀请赛 征战号角响彻全场
2015/01/06 DOTA
python将图片文件转换成base64编码的方法
2015/03/14 Python
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
2018/06/25 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
2019/07/07 Python
python pyecharts 实现一个文件绘制多张图
2020/05/13 Python
8款使用 CSS3 实现超炫的 Loading(加载)的动画效果
2015/03/17 HTML / CSS
印尼在线旅游门户网站:NusaTrip
2019/11/01 全球购物
意大利顶级奢侈品电商:LUISAVIAROMA(支持中文)
2020/05/26 全球购物
面向对象编程是如何提高软件开发水平的
2014/05/06 面试题
畜牧兽医本科生个人的自我评价
2013/10/11 职场文书
阿德的梦教学反思
2014/02/06 职场文书
初中运动会前导词
2015/07/20 职场文书
七年级作文之关于奶奶
2019/10/29 职场文书
奇妙的 CSS shapes(CSS图形)
2021/04/05 HTML / CSS
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL
Python+Appium自动化测试的实战
2021/06/30 Python
go开发alertmanger实现钉钉报警
2021/07/16 Golang