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 学习技巧
Feb 17 Javascript
对javascript的一点点认识总结《javascript高级程序设计》读书笔记
Nov 30 Javascript
javascript结合html5 canvas实现(可调画笔颜色/粗细/橡皮)的涂鸦板
Apr 27 Javascript
Js日期选择器并自动加入到输入框中示例代码
Aug 02 Javascript
jQuery中的$.ajax()方法应用
May 06 Javascript
如何让浏览器支持jquery ajax load 前进、后退功能
Jun 12 Javascript
JS数组的常见用法实例
Feb 10 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
Jun 24 Javascript
AngularJS中的作用域实例分析
May 16 Javascript
微信小程序实现随机验证码功能
Dec 20 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
Nov 24 Javascript
js实现弹幕墙效果
Dec 10 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加密解密类代码
2011/11/27 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
List the UTC Time on a Computer
2007/06/11 Javascript
JavaScript CSS修改学习第一章 查找位置
2010/02/19 Javascript
js实时监听文本框状态的方法
2011/04/26 Javascript
火狐4、谷歌12不支持Jquery Validator的解决方法分享
2011/06/20 Javascript
jquery创建并行对象或者合并对象的实现代码
2012/10/10 Javascript
nodejs中简单实现Javascript Promise机制的实例
2014/12/06 NodeJs
JS对字符串编码的几种方式使用指南
2015/05/14 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
2016/10/28 Javascript
js匿名函数使用&amp;传参(实例)
2017/09/08 Javascript
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
2019/08/16 Javascript
layui+jquery支持IE8的表格分页方法
2019/09/28 jQuery
Vue实现星级评价效果实例详解
2019/12/30 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
[00:32]2018DOTA2亚洲邀请赛VGJ.T出场
2018/04/03 DOTA
Python实现提取谷歌音乐搜索结果的方法
2015/07/10 Python
python实现BackPropagation算法
2017/12/14 Python
Python读取properties配置文件操作示例
2018/03/29 Python
pandas实现选取特定索引的行
2018/04/20 Python
python简易远程控制单线程版
2018/06/20 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
2019/12/17 Python
python3.8下载及安装步骤详解
2020/01/15 Python
Python使用Pandas库常见操作详解
2020/01/16 Python
django rest framework 过滤时间操作
2020/07/12 Python
美国知名女性服饰品牌:New York & Company
2017/03/23 全球购物
德国化妆品和天然化妆品网上商店:kosmetikfuchs.de
2017/06/09 全球购物
计算机应用毕业生自荐信
2013/10/23 职场文书
12月红领巾广播稿
2014/02/13 职场文书
小学生春游活动方案
2014/08/20 职场文书
大学生暑期社会实践证明范本
2014/10/24 职场文书
幼儿园开学报名通知
2015/07/16 职场文书