zoukankan      html  css  js  c++  java
  • JavaScript中的字符串连接

    ref:

    这篇文章将会介绍一些能够提高你的JavaScript代码性能的建议和技巧。

    原文参见http://hi.baidu.com/forain/blog/item/62e8918fc2eb4aff513d929c.html

    问题

    大多数JavaScript开发者都习惯于使用 JavaScript提供的简单的字符串处理,比如连接字符串的”+”运算符:

    var str = “Hello” + “ World”;

    这句代码可读性很好,对于连接小的字符串是很方便的。但是利用这样的方法去操作许多的字符串(比如当你要动态的创建整个页面内容)时,代码性能将被严重影响。

    解决方案

    数组对象的join方法使我们可以将数组里的所有元素连接成为一个字符串,在这个连接过程中,join方法还允许我们设定一个字符作为分隔符插入在各个元素中间昨晚间隔。如果我们将我们要连接的文字段落的各个部分分别赋予给一个数组的各个元素,然后利用join方法将他们连接在一起(分隔符设置为空),我们可以得到与“+”操作同样的结果。这种方法类似于JAVA中的StringBuffer对象。

    var buffer = new Array();buffer[buffer.length] = "Hello";buffer[buffer.length] = " World"; buffer.join("");测试

    利用数组join方法连接字符串的好处在于它确确实实地提高了代码的效率。为了说明这个结论,作者做了一个测试,测试结果如下:

    方法

    浏览器

    最小值

    最大值

    平均值

    传统的字符串连接操作

    IE 6

    460ms

    810ms

    646ms

    FF 1.5B1

    15ms

    47ms

    26ms

    利用数组的join方法

    IE 6

    15ms

    32ms

    26ms

    FF 1.5B1

    15ms

    31ms

    20ms

    结论

    在你的JavaScript应用中使用数组的join方法能够提高你的代码效率,给用户带来更加流畅的体验。

    测试方法

    function test1(){
    var cycles = 10000;
    var tp1 = new Date().valueOf();
    var buffer = "";
    for (var i = 0; i < cycles; i++)
    buffer += "0123456789";
    var tp2 = new Date().valueOf();
    alert(tp2 - tp1);
    }

    function test2(){
    var tp1 = new Date().valueOf();
    var buffer = new Array();
    for (var i = 0; i < cycles; i++)
    buffer[buffer.length] = "0123456789";
    var str = buffer.join("");
    var tp2 = new Date().valueOf(); alert(tp2 - tp1);
    }
  • 相关阅读:
    c#装箱和拆箱
    C#数组,ArrayList,List
    Cocos Creator_发布到微信小游戏平台
    unity游戏设计与实现 --读书笔记(一)
    Cocos Creator存储和读取用户数据--官方文档
    C
    233 Matrix 矩阵快速幂
    数学 找规律 Jzzhu and Sequences
    A. Treasure Hunt Codeforces 线性代数
    POJ 2688 Cleaning Robot (BFS+DFS)
  • 原文地址:https://www.cnblogs.com/SpringSmallGrass/p/3044075.html
Copyright © 2011-2022 走看看