JavaScript中字符串连接性能优化

简介:


var str = "hello"
str 
+= " world"

后台所做工作:

1)创建存储 "hello" 的字符串,且使 str 指向它。

2)创建存储 "world" 的字符串。

3)创建存储结果的字符串。

4)将 str 中的当前内容复制到结果字符串中。

5)把 world 复制到结果字符串中。

6)更新 str ,使 str 指向结果字符串。

 

每拼接一次字符串就循环重复2)~6),如果重复成百上千次则会非常消耗资源,影响性能。

解决方法:

使用 Array 对象存储字符串,之后使用 join()方法输出结果。

仿照 Java 中的 StringBuffer 类。

 

    function  StringBuffer(){ 
        
this._strings = new
 Array; 
    } 
    StringBuffer.prototype.append 
= function
 (str){ 
        
this
._strings.push(str); 
    } 
    StringBuffer.prototype.toString 
= function
 (){ 
        
return this._strings.join(""
); 
    } 

 

测试性能:

代码1:使用 "+=" 拼接字符串

 

var d = new  Date(); 
var str = ""

for(var i=0;i<10000;i++
){ 
    str 
+= "test"



var d2 = new
 Date(); 
document.writeln(d2.getTime()
-d.getTime()); 

 

代码2:使用 StringBuffer

 

var d = new  Date(); 
var str = new
 StringBuffer(); 
for(var i=0;i<10000;i++
){ 
    str.append(
"test"
); 

var res =
 str.toString(); 
var d2 = new
 Date(); 
document.writeln(d2.getTime()
-d.getTime()); 

 

从多次测试结果看来,使用StringBuffer 可以节省50%以上的时间。


本文转自BlogJavaOo缘来是你oO的博客,原文链接: JavaScript中字符串连接性能优化,如需转载请自行联系原博主。
相关文章
|
1月前
|
JavaScript 前端开发
JavaScript随手笔记 --- 用正则表达式匹配字符串是否为运算公式
JavaScript随手笔记 --- 用正则表达式匹配字符串是否为运算公式
|
1月前
|
JavaScript 前端开发
js字符串替换
js字符串替换
16 2
|
3月前
|
JavaScript 前端开发
javascript 如何判断字符串日期是否相差七天
在JavaScript中,你可以使用`Date`对象来比较两个日期之间的差异。下面是一个简单的示例,演示如何判断两个字符串日期是否相差七天: ```javascript function isSevenDaysDifference(date1, date2) { // 确保输入是字符串 if (typeof date1 !== 'string' || typeof date2 !== 'string') { return false; } // 将字符串转换为Date对象 var d1 = new Date(date1);
|
3月前
|
JavaScript 数据安全/隐私保护 Android开发
Js随机生成字符串---autojs pro 篇
Js随机生成字符串---autojs pro 篇
28 0
|
4天前
|
Web App开发 JavaScript 前端开发
JavaScript中的性能优化:代码优化技巧与性能分析工具
【4月更文挑战第22天】本文探讨JavaScript性能优化,包括代码优化技巧和性能分析工具。建议避免全局查找、减少DOM操作、使用事件委托、优化循环和异步编程以提升代码效率。推荐使用Chrome DevTools、Lighthouse和jsPerf等工具进行性能检测和优化。持续学习和实践是提升JavaScript应用性能的关键。
|
15天前
|
JavaScript 前端开发 索引
JavaScript中与字符串相关的方法
JavaScript中与字符串相关的方法
|
1月前
|
JavaScript 前端开发 索引
JavaScript字符串检查:从基础到高级
【2月更文挑战第26天】
26 0
JavaScript字符串检查:从基础到高级
|
8天前
|
JavaScript 前端开发
js字符串拼接
js字符串拼接
|
15天前
|
JavaScript
js 字符串String转对象Object
该代码示例展示了如何将一个以逗号分隔的字符串(`&#39;1.2,2,3,4,5&#39;`)转换为对象数组。通过使用`split(&#39;,&#39;)`分割字符串并`map(parseFloat)`处理每个元素,将字符串转换成浮点数数组,最终得到一个对象数组,其类型为`object`。
|
19天前
|
JavaScript
JS去除字符串的方法
JS去除字符串的方法