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 相关文章推荐
jQuery入门知识简介
Mar 04 Javascript
JavaScript中获取元素索引的函数
Sep 10 Javascript
offsetHeight在OnLoad中获取为0的现象
Jul 22 Javascript
利用javascript打开模态对话框(示例代码)
Jan 11 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 简史
Jan 09 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
Nov 07 Javascript
Vue实现动态创建和删除数据的方法
Mar 17 Javascript
javascript中函数的写法实例代码详解
Oct 28 Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
Mar 01 Javascript
使用webpack搭建vue项目实现脚手架功能
Mar 15 Javascript
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
Apr 09 Javascript
详解如何写出一个利于扩展的vue路由配置
May 16 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中通过虚代理实现延迟加载的实现代码
2011/06/10 PHP
PHP反转字符串函数strrev()函数的用法
2012/02/04 PHP
PHP中几个常用的魔术常量
2012/02/23 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
破除一些网站复制、右键限制
2006/11/04 Javascript
新鲜出炉的js tips提示效果
2011/04/03 Javascript
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
Node.js 制作实时多人游戏框架
2015/01/08 Javascript
javascript中hasOwnProperty() 方法使用指南
2015/03/09 Javascript
在JavaScript中使用开平方根的sqrt()方法
2015/06/15 Javascript
在AngularJS中使用AJAX的方法
2015/06/17 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
JS实现DIV容器赋值的方法
2015/12/14 Javascript
星期几的不同脚本写法(推荐)
2016/06/01 Javascript
Vue概念及常见命令介绍(1)
2016/12/08 Javascript
深入理解Javascript中的作用域链和闭包
2017/04/25 Javascript
vue 移动端适配方案详解
2018/11/15 Javascript
详解elementUI中input框无法输入的问题
2020/04/27 Javascript
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
VUE : vue-cli中去掉路由中的井号#操作
2020/09/04 Javascript
jQuery实现日历效果
2020/09/11 jQuery
[37:45]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第二场 12.09
2020/12/11 DOTA
python实现批量监控网站
2016/09/09 Python
关于PyTorch源码解读之torchvision.models
2019/08/17 Python
Python 连接 MySQL 的几种方法
2020/09/09 Python
Django model class Meta原理解析
2020/11/14 Python
字中字效果的实现【html5实例】
2016/05/03 HTML / CSS
写出SQL四条最基本的数据操作语句(DML)
2012/12/12 面试题
会计岗位职责模板
2014/03/12 职场文书
物理课外活动总结
2014/08/27 职场文书
吴仁宝观后感
2015/06/09 职场文书
QT与javascript交互数据的实现
2021/05/26 Javascript
Spring Boot 实现敏感词及特殊字符过滤处理
2021/06/29 Java/Android
Python MNIST手写体识别详解与试练
2021/11/07 Python