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 相关文章推荐
JScript中的"this"关键字使用方式补充材料
Mar 08 Javascript
ajax java 实现自动完成功能
Dec 19 Javascript
js判断登录与否并确定跳转页面的方法
Jan 30 Javascript
JQuery插件ajaxfileupload.js异步上传文件实例
May 19 Javascript
javascript中if和switch,==和===详解
Jul 30 Javascript
jquery实现的table排序功能示例
Mar 10 Javascript
Angular4学习笔记之新建项目的方法
Jul 18 Javascript
WdatePicker.js时间日期插件的使用方法
Jul 26 Javascript
解决vue组件中使用v-for出现告警问题及v for指令介绍
Nov 11 Javascript
解决Mac下安装nmp的淘宝镜像失败问题
May 16 Javascript
通过一次报错详细谈谈Point事件
May 17 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
Apr 08 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实现生成唯一会员卡号
2015/08/24 PHP
yii2中添加验证码的实现方法
2016/01/09 PHP
php结合md5的加密解密算法实例
2016/09/30 PHP
PHP中的正则表达式实例详解
2017/04/25 PHP
PHP获取ttf格式文件字体名的方法示例
2019/03/06 PHP
飞鱼(shqlsl) javascript作品集
2006/12/16 Javascript
js 学习笔记(三)
2009/12/29 Javascript
javascript返回顶部效果(自写代码)
2013/01/06 Javascript
js螺旋动画效果的具体实例
2013/11/15 Javascript
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
2015/08/12 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
2016/10/18 Javascript
node.js中的事件处理机制详解
2016/11/26 Javascript
vue中关闭eslint的方法分析
2018/08/04 Javascript
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
vue cli3 配置proxy代理无效的解决
2019/10/30 Javascript
js实现弹幕飞机效果
2020/08/27 Javascript
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
Python深入学习之对象的属性
2014/08/31 Python
深入浅析Python中join 和 split详解(推荐)
2016/06/30 Python
python和shell监控linux服务器的详细代码
2018/06/22 Python
Python理解递归的方法总结
2019/01/28 Python
python的pstuil模块使用方法总结
2019/07/26 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
Python实现爬取网页中动态加载的数据
2020/08/17 Python
美国在线精品家居网站:Burke Decor
2017/04/12 全球购物
代理协议书
2014/04/22 职场文书
考试保密承诺书
2014/08/30 职场文书
超市店庆活动方案
2014/08/31 职场文书
2014年党员自我评议(5篇)
2014/09/12 职场文书
个人作风建设剖析材料
2014/10/11 职场文书
2014年行政人事工作总结
2014/12/09 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript
python内置模块之上下文管理contextlib
2022/06/14 Python