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 相关文章推荐
javascript 跳转代码集合
Dec 03 Javascript
js实现兼容IE和FF的上下层的移动
May 04 Javascript
浅谈jQuery构造函数分析
May 11 Javascript
JavaScript encodeURI 和encodeURIComponent
Dec 04 Javascript
js手动播放图片实现图片轮播效果
Sep 17 Javascript
Angular2 (RC4) 路由与导航详解
Sep 21 Javascript
WEB开发之注册页面验证码倒计时代码的实现
Dec 15 Javascript
vue实现树形菜单效果
Mar 19 Javascript
vue主动刷新页面及列表数据删除后的刷新实例
Sep 16 Javascript
vue无限轮播插件代码实例
May 10 Javascript
微信小程序实现时间进度条功能
Nov 17 Javascript
微信小程序通过websocket实时语音识别的实现代码
Aug 19 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
MayFish PHP的MVC架构的开发框架
2009/08/13 PHP
PHP print类函数使用总结
2010/06/25 PHP
细谈php中SQL注入攻击与XSS攻击
2012/06/10 PHP
PHP_Cooikes不同页面无法传递的解决方法
2014/03/07 PHP
destoon首页调用求购供应信息的地区名称的方法
2014/08/21 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
JS backgroundImage控制
2009/05/19 Javascript
Aptana调试javascript图解教程
2009/11/30 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
2011/12/31 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
raphael.js绘制中国地图 地图绘制方法
2014/02/12 Javascript
Juery解决tablesorter中文排序和字符范围的方法
2015/05/06 Javascript
百度地图api如何使用
2015/08/03 Javascript
jquery分页插件jquery.pagination.js使用方法解析
2016/04/01 Javascript
javascript 动态脚本添加的简单方法
2016/10/11 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
jQuery表单元素过滤选择器用法实例分析
2019/02/20 jQuery
Python3实现连接SQLite数据库的方法
2014/08/23 Python
Python实现获取网站PR及百度权重
2015/01/21 Python
wxpython中Textctrl回车事件无效的解决方法
2016/07/21 Python
Python使用Turtle模块绘制五星红旗代码示例
2017/12/11 Python
python flask中静态文件的管理方法
2018/03/20 Python
Python3连接SQLServer、Oracle、MySql的方法
2018/06/28 Python
selenium+python自动化测试之环境搭建
2019/01/23 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
2019/12/02 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
HTML5中的Article和Section元素认识及使用
2013/03/22 HTML / CSS
浅谈HTML5新增和废弃的标签
2019/04/28 HTML / CSS
美国最受欢迎的童装品牌之一:The Children’s Place
2016/07/23 全球购物
英国发展最快的在线超市之一:Click Marketplace
2021/02/15 全球购物
市场营销工作计划书
2014/09/15 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书
标准发言稿结尾
2019/07/18 职场文书
基于Python实现的购物商城管理系统
2021/04/27 Python
pytorch实现ResNet结构的实例代码
2021/05/17 Python