源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

JavaScript 字符串连接性能优化

  • 时间:2021-03-21 23:08 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:JavaScript 字符串连接性能优化
[u]复制代码[/u] 代码如下:
var str = "hello"; str += " world";
后台所做工作: 1)创建存储 "hello" 的字符串,且使 str 指向它。 2)创建存储 "world" 的字符串。 3)创建存储结果的字符串。 4)将 str 中的当前内容复制到结果字符串中。 5)把 world 复制到结果字符串中。 6)更新 str ,使 str 指向结果字符串。 每拼接一次字符串就循环重复2)~6),如果重复成百上千次则会非常消耗资源,影响性能。 解决方法: 使用 Array 对象存储字符串,之后使用 join()方法输出结果。 仿照 Java 中的 StringBuffer 类。
[u]复制代码[/u] 代码如下:
function StringBuffer(){ this._strings = new Array; } StringBuffer.prototype.append = function (str){ this._strings.push(str); } StringBuffer.prototype.toString = function (){ return this._strings.join(""); }
测试性能: 代码1:使用 "+=" 拼接字符串
[u]复制代码[/u] 代码如下:
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
[u]复制代码[/u] 代码如下:
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%以上的时间。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部