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应该怎样学
Apr 16 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
Jun 14 Javascript
JS可以控制样式的名称写法一览
Jan 16 Javascript
node.js中的fs.createReadStream方法使用说明
Dec 17 Javascript
推荐一个自己用的封装好的javascript插件
Jan 29 Javascript
jQuery获取样式中颜色值的方法
Jan 29 Javascript
js获取及判断键盘按键的方法
Dec 01 Javascript
谈谈JS中的!!
Dec 07 Javascript
node中IO以及定时器优先级详解
May 10 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
Sep 21 Javascript
JS控制只能输入数字并且最多允许小数点两位
Nov 24 Javascript
JavaScript 替换所有匹配内容及正则替换方法
Feb 12 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
windows下配置apache+php+mysql时出现问题的处理方法
2014/06/20 PHP
php读取csv数据保存到数组的方法
2015/01/03 PHP
thinkPHP5.0框架事务处理操作简单示例
2018/09/07 PHP
Laravel使用Queue队列的技巧汇总
2019/09/02 PHP
js过滤HTML标签以及空格的思路及代码
2013/05/24 Javascript
Javascript获取HTML静态页面参数传递值示例
2013/08/18 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
2014/07/02 Javascript
jQuery+ajax中getJSON() 用法实例
2014/12/22 Javascript
javascript面向对象之访问对象属性的两种方式分析
2015/01/13 Javascript
JavaScript中SetInterval与setTimeout的用法详解
2015/11/10 Javascript
每天一篇javascript学习小结(属性定义方法)
2015/11/19 Javascript
JQuery EasyUI的使用
2016/02/24 Javascript
Vue2.0实现购物车功能
2017/06/05 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
2017/08/04 Javascript
详解vue-router 路由元信息
2017/09/13 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
vue基于better-scroll实现左右联动滑动页面
2020/06/30 Javascript
jQuery实现简单三级联动效果
2020/09/05 jQuery
[01:28:24]NAVI vs VG Supermajor 败者组 BO3 第三场 6.5
2018/06/06 DOTA
Python的多态性实例分析
2015/07/07 Python
详解设计模式中的工厂方法模式在Python程序中的运用
2016/03/02 Python
python制作爬虫并将抓取结果保存到excel中
2016/04/06 Python
Python正则表达式实现截取成对括号的方法
2017/01/06 Python
浅谈python requests 的put, post 请求参数的问题
2019/01/02 Python
django中SMTP发送邮件配置详解
2019/07/19 Python
将Python文件打包成.EXE可执行文件的方法
2019/08/11 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
2019/08/20 Python
python3实现弹弹球小游戏
2019/11/25 Python
印度网上药店:1mg
2017/10/13 全球购物
公证书样本
2014/04/10 职场文书
工会工作先进事迹
2014/08/18 职场文书
中秋联欢会主持词
2015/07/04 职场文书
创业计划书之奶茶店开店方案范本!
2019/08/06 职场文书
电子表的操作介绍说明书
2019/10/28 职场文书
pytorch--之halfTensor的使用详解
2021/05/24 Python