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 相关文章推荐
web页面数据展示新想法(json)
Jun 08 Javascript
JS刷新当前页面的几种方法总结
Dec 24 Javascript
详解JavaScript的策略模式编程
Jun 24 Javascript
浅谈jQuery的offset()方法及示例分享
Jul 17 Javascript
js格式化输入框内金额、银行卡号
Feb 01 Javascript
用js实现放大镜的效果的简单实例
May 23 Javascript
javascript将中国数字格式转换成欧式数字格式的简单实例
Aug 02 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
Nov 03 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
Aug 30 Javascript
iview通过Dropdown(下拉菜单)实现的右键菜单
Oct 26 Javascript
Vue props 单向数据流的实现
Nov 06 Javascript
layui实现二维码弹窗、并下载到本地的方法
Sep 25 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
在PHP中执行系统外部命令
2006/10/09 PHP
PHP新手上路(五)
2006/10/09 PHP
PHP中改变图片的尺寸大小的代码
2011/07/17 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
php模拟登陆的实现方法分析
2015/01/09 PHP
深入理解PHP之源码目录结构与功能说明
2016/06/01 PHP
JS编程小常识很有用
2012/11/26 Javascript
js表头排序实现方法
2015/01/16 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
nodejs事件的监听与触发的理解分析
2015/02/12 NodeJs
jQuery中hover方法和toggle方法使用指南
2015/02/27 Javascript
JQuery中Text方法用法实例分析
2015/05/18 Javascript
javascript+HTML5自定义元素播放焦点图动画
2016/02/21 Javascript
JavaScript事件学习小结(五)js中事件类型之鼠标事件
2016/06/09 Javascript
VueJS全面解析
2016/11/10 Javascript
javascript 删除数组元素和清空数组的简单方法
2017/02/24 Javascript
利用nodeJs anywhere搭建本地服务器环境的方法
2018/05/12 NodeJs
Vue自定义指令封装节流函数的方法示例
2018/07/09 Javascript
学习React中ref的两个demo示例
2018/08/14 Javascript
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
2018/11/09 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)
2020/04/27 Javascript
Python实现比较两个文件夹中代码变化的方法
2015/07/10 Python
Python 递归函数详解及实例
2016/12/27 Python
利用python生成一个导出数据库的bat脚本文件的方法
2016/12/30 Python
python使用xpath中遇到:到底是什么?
2018/01/04 Python
python实现mysql的读写分离及负载均衡
2018/02/04 Python
python 接口实现 供第三方调用的例子
2019/08/13 Python
internal修饰符起什么作用
2013/12/16 面试题
爱与责任师德演讲稿
2014/08/26 职场文书
市级三好学生事迹材料
2014/08/27 职场文书
销售人才自我评价范文
2014/09/27 职场文书
家属慰问信
2015/02/14 职场文书
毕业实习单位意见
2015/06/04 职场文书
详解分布式系统中如何用python实现Paxos
2021/05/18 Python
ConstraintValidator类如何实现自定义注解校验前端传参
2021/06/18 Java/Android