zoukankan      html  css  js  c++  java
  • Javascript拼接字符串的效率比较:String.replace VS Array.push


    /*
    * * 背景是因为发现同事拼JS字符串喜欢用模板(String.replace),没错,用模板增加了可读性,
    * 但是相较于高效的Array.push然后Array.join("")拼接字符串而言,用replace有个性能问题。
    * 以循环1000次举例,ie下差距很大,ff下的Array.push也要快将近一倍。可运行下面的demo:
    * String.replace VS Array.push
    */ var testType=2;//1=String.replace or 2=Array.push var s="",sArr=[],n=1000;//u can change "n" from 1000 to 10000 for(var i=0;i<n;i++){ s+="{a}";} var t1=new Date().getTime(); for(var i=0;i<n;i++){ if(testType==1) s=s.replace("{a}","ba"); else sArr.push("b"+"a"); } if(testType!=1)s=sArr.join(""); var t2=new Date().getTime(); alert("use "+(testType==1?"String.replace":"Array.push")+":"+(t2-t1)+" ms")

    还有个结论是,超过100ms(貌似是这个数字?)的延迟可以被感知,如果模板方案的处理速度慢下来了(因为需要先读取模板),延迟是可以感知的,在某些项目中是不允许的。

    本博客所有随笔,若未明确标示为转载或未带有原文链接,皆为原创。
    本博客所有随笔版权归博客园和kai.ma所有,欢迎转载,转载请保留:
    • 出处:http://kaima.cnblogs.com
    • 作者:kai.ma
  • 相关阅读:
    简单的四则运算
    11月28日-课堂测验
    01-实现简单的登录界面
    06-继承与多态-动手动脑
    04-String-动手动脑
    04-String
    03-类与对象-动手动脑
    iOS 审核加急通道使用--转载来源--有梦想的蜗牛
    多线程 队列的简单操作
    随机排列
  • 原文地址:https://www.cnblogs.com/kaima/p/2739102.html
Copyright © 2011-2022 走看看