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+Dhtml:WEB程序员简易开发工具包(预先体验版)
Nov 07 Javascript
jquery tools系列 expose 学习
Sep 06 Javascript
js 数值项目的格式化函数代码
May 14 Javascript
js获取某月的最后一天日期的简单实例
Jun 22 Javascript
用于deeplink的js方法(判断手机是否安装app)
Apr 02 Javascript
jQuery实现表单步骤流程导航代码分享
Aug 28 Javascript
JS创建Tag标签的方法详解
Jun 09 Javascript
原生js获取left值和top值的三种方法
Aug 02 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
Aug 26 Javascript
基于Bootstrap实现城市三级联动
Nov 23 Javascript
关于vue面试题汇总
Mar 20 Javascript
详解JS实现系统登录页的登录和验证
Apr 29 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简介
2006/10/09 PHP
mysql时区问题
2008/03/26 PHP
《PHP编程最快明白》第八讲:php启发和小结
2010/11/01 PHP
PHP安全配置详细说明
2011/09/26 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
2013/02/17 PHP
PHP的pcntl多进程用法实例
2015/03/19 PHP
PHP 信号管理知识整理汇总
2017/02/19 PHP
JavaScript初学者需要了解10个小技巧
2010/08/25 Javascript
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
游览器中javascript的执行过程(图文)
2012/05/20 Javascript
JS获取各种浏览器窗口大小的方法
2014/01/14 Javascript
JavaScript通过字符串调用函数的实现方法
2015/03/18 Javascript
jquery仿百度经验滑动切换浏览效果
2015/04/14 Javascript
javascript实现图片跟随鼠标移动效果的方法
2015/05/13 Javascript
使用JQuery在线制作ppt并在线演示源码特效
2015/09/08 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
从零开始学习Node.js系列教程之基于connect和express框架的多页面实现数学运算示例
2017/04/13 Javascript
vue interceptor 使用教程实例详解
2018/09/13 Javascript
vue根据值给予不同class的实例
2018/09/29 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
对layui中的onevent 和event的使用详解
2019/09/06 Javascript
taro小程序添加骨架屏的实现代码
2019/11/15 Javascript
微信小程序swiper使用网络图片不显示问题解决
2019/12/13 Javascript
python实现复制文件到指定目录
2019/10/16 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
2019/12/12 Python
Python中return函数返回值实例用法
2020/11/19 Python
阿迪达斯西班牙官方网站:adidas西班牙
2016/07/21 全球购物
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
婴儿鞋,独特的婴儿服装和配件:Zutano
2018/11/03 全球购物
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
请问如下代码执行后a和b的值分别是什么
2016/05/05 面试题
校园报刊亭的创业计划书
2014/01/02 职场文书
学生思想表现的评语
2014/01/30 职场文书
表彰会主持词
2014/03/26 职场文书
实习推荐信
2014/05/10 职场文书
集中采购方案
2014/06/10 职场文书