JavaScript 学习笔记二 字符串拼接


Posted in Javascript onMarch 28, 2010

var str="hello";
str+="world";
实际上,这段代码在幕后执行的步骤如下:
(1) 创建存储"hello"的字符串。
(2) 创建存储"world"的字符串。
(3) 创建存储连接结果的字符串。
(4) 把str的当前内容复制到结果中。
(5) 把"world"复制到结果中。
(6) 更新str,使它指向结果。
每次完成字符串连接都会执行步骤2到6,使得这种操作非常消耗资源。如果重复这一过程几百次,甚至几千次,就会造成性能问题。解决方法是用Array对象存储字符串,然后用join()方法(参数是空字符串)创建最后的字符串。想像用下面的代码代替前面的代码:

var str=new Array(); 
str[0]="hello"; 
str[1]="world"; 
str.join("");

这样,无论在数组中引入多少字符串都不成问题,因为只在调用join()方法时才会发生连接操作。此时,执行的步骤如下:
(1) 创建存储结果的字符串。
(2) 把每个字符串复制到结果中的合适位置。
function StringBuilder(){ 
this._string=new Array(); 
} 
StringBuilder.prototype.Append=function(str){ 
this._string.push(str); 
} 
StringBuilder.prototype.toString=function(){ 
return this._string.join(""); 
}

相关提升效率的文章:
html数组字符串拼接的最快方法

javascript之大字符串的连接的StringBuffer 类

更多可以参考三水点靠木以前的文章。

Javascript 相关文章推荐
AngularJS入门教程(一):静态模板
Dec 06 Javascript
Node.js开源应用框架HapiJS介绍
Jan 14 Javascript
浅谈Node.js中的定时器
Jun 18 Javascript
JavaScript 浏览器兼容性总结及常用浏览器兼容性分析
Mar 30 Javascript
关于session和cookie的简单理解
Jun 08 Javascript
jQuery与JS加载事件用法分析
Sep 04 Javascript
微信小程序 获取设备信息 API实例详解
Oct 02 Javascript
JavaScript 事件流、事件处理程序及事件对象总结
Apr 01 Javascript
JS+canvas动态绘制饼图的方法示例
Sep 12 Javascript
基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)
Nov 02 Javascript
用node撸一个监测复联4开售短信提醒的实现代码
Apr 10 Javascript
vue百度地图 + 定位的详解
May 13 Javascript
jQuery 美元符冲突的解决方法
Mar 28 #Javascript
分享十五个最佳jQuery 幻灯插件和教程
Mar 27 #Javascript
Jquery 1.42 checkbox 全选和反选代码
Mar 27 #Javascript
网络图片延迟加载实现代码 超越jquery控件
Mar 27 #Javascript
JQuery的一些小应用收集
Mar 27 #Javascript
Visual Studio中的jQuery智能提示设置方法
Mar 27 #Javascript
Jquery 滑入滑出效果实现代码
Mar 27 #Javascript
You might like
php5 apache 2.2 webservice 创建与配置(java)
2011/01/27 PHP
计算php页面运行时间的函数介绍
2013/07/01 PHP
yii框架搜索分页modle写法
2016/12/19 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
2017/02/15 PHP
php+ajax 文件上传代码实例
2019/03/18 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
2019/09/30 PHP
PHP7原生MySQL数据库操作实现代码
2020/07/03 PHP
jquery中.add()的使用分析
2013/04/26 Javascript
jquery制作 随机弹跳的小球特效
2015/02/01 Javascript
Angularjs实现多个页面共享数据的方式
2016/03/29 Javascript
使用jQuery处理AJAX请求的基础学习教程
2016/05/10 Javascript
一种Javascript解释ajax返回的json的好方法(推荐)
2016/06/02 Javascript
js实现右键菜单功能
2016/11/28 Javascript
Bootstrap基本组件学习笔记之面板(14)
2016/12/08 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
全选复选框JavaScript编写小结(附代码)
2017/08/16 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
详解element-ui动态限定的日期范围选择器代码片段
2020/07/03 Javascript
python中as用法实例分析
2015/04/30 Python
python爬虫使用cookie登录详解
2017/12/27 Python
pycham查看程序执行的时间方法
2018/11/29 Python
django的ORM操作 增加和查询
2019/07/26 Python
python中return的返回和执行实例
2019/12/24 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
2020/03/01 Python
Tensorflow中的降维函数tf.reduce_*使用总结
2020/04/20 Python
python中append函数用法讲解
2020/12/11 Python
鲜为人知的HTML5语音合成功能
2019/05/17 HTML / CSS
跑步、骑行和铁人三项的高性能眼镜和服装:ROKA
2018/07/06 全球购物
庆元旦广播稿
2014/02/10 职场文书
成龙霸王洗发水广告词
2014/03/14 职场文书
师德建设实施方案
2014/03/21 职场文书
仓库文员岗位职责
2014/04/06 职场文书
2015入党自荐书范文
2015/03/05 职场文书
会议主持人开场白台词
2015/05/28 职场文书
2015年教务主任工作总结
2015/07/22 职场文书
Nginx域名转发使用场景代码实例
2021/03/31 Servers