zoukankan      html  css  js  c++  java
  • JS中三种字符串连接方式及其性能比较

    第一种方法  用连接符“+”把要连接的字符串连起来:

    str="a";
    str+="b";

    毫无疑问,这种方法是最便捷快速的,如果只连接100个以下的字符串建议用这种方法最方便。

    第二种方法  以数组作为中介用 join 连接字符串:

    var arr=new Array();
    arr.push(a);
    arr.push(b);
    var str=arr.join("");

    第三种方法  利用对象属性来连接字符串

    复制代码
    function stringConnect(){
        this._str_=new Array();
    }
    stringConnect.prototype.append=function(a){
        this._str_.push(a);
    }
    stringConnect.prototype.toString=function(){
        return this._str_.join();
    }
        var mystr=new stringConnect;
        mystr.append("a");
        var str=mystr.toString();
    复制代码

    利用下面代码对三种方法性能进行比较,通过更改 c 的值来调整连接字符串的个数:

    复制代码
    var str="";
    var d1,d2;
    var c=5000;//连接字符串的个数

    //------------------------测试第三种方法耗费时间------- d1=new Date(); function stringConnect(){ this._str_=new Array(); } stringConnect.prototype.append=function(a){ this._str_.push(a); } stringConnect.prototype.toString=function(){ return this._str_.join(""); } var mystr=new stringConnect; for(var i=0;i<c;i++){ mystr.append("a"); } str=mystr.toString(); d2=new Date(); console.log(d2.getTime()-d1.getTime()); //----------------------------------------------------- //------------------------测试第二种方法耗费时间------- d1=new Date(); var arr=new Array(); for(var i=0;i<c;i++){ arr.push("a"); } str=arr.join(""); d2=new Date(); console.log(d2.getTime()-d1.getTime()); //------------------------------------------------------- //------------------------测试第一种方法耗费时间------- d1=new Date();for(var i=0;i<c;i++){ str+="a"; } d2=new Date(); console.log(d2.getTime()-d1.getTime()); //-------------------------------------------------------
  • 相关阅读:
    HTML学习记录之HTML组成原理 PHP学习铺垫
    最长上升子序列(Longest increasing subsequence)
    进程保护(二)
    进程保护(一)
    屏幕广播的实现(三)
    vs2010 调试快捷键
    [整理]C#.Net的常见面试试题附答案(ZT)
    C# 中处理字符串常用的函数及方法详细说明
    Linux 系统下 /etc/group 档案结构
    C# Thread 多种写法总结
  • 原文地址:https://www.cnblogs.com/yourName/p/8532152.html
Copyright © 2011-2022 走看看