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

源码网商城

javascript中字符串拼接详解

  • 时间:2021-12-18 22:15 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:javascript中字符串拼接详解
最近在研究《javascript高级程序设计》中,有一段关于字符串特点的描述,原文大概如下:ECMAScript中的字符串是不可变的,也就是说,字符串一旦创建,他们的值就不能改变。要改变某个变量的保存的的字符串,首先要销毁原来的字符串,然后再用另外一个包含新值的字符串填充该变量,例如:
[url=https://gist.github.com/hehongwei44/fe71f10e4d2d9295aeab]https://gist.github.com/hehongwei44/fe71f10e4d2d9295aeab[/url] 机制我们模拟出来了,但是这个方法和字符串拼接性能上有多少差别了,我们可以测试一下,测试代码如下:
[u]复制代码[/u] 代码如下:
var d1 = new Date(); var str = ""; for(var i = 0; i < 10000; i++){     str += "text "; } var d2 = new Date(); document.write("测试一花费: " + (d2.getTime() - d1.getTime())/1000 + "秒"+"<br/>"); var oBuffer = new StringBuffer(); d3 = new Date(); for(var i = 0; i < 10000; i++){     oBuffer.append("text "); } var sResult = oBuffer.toString(); d4 = new Date(); document.write("测试二花费: " + (d4.getTime() - d3.getTime())/1000 + "秒");
 测试结果如下:(环境不同,测试结果可能不同): 1.在以1000次为基数的情况下,进行比较,两者执行都非常快(基本都是几毫秒)耗时都差不多,后者以前者相差不会超过10个毫秒。  2.在以10000次为基数的情况下,执行结果和上面差不多,但是前者在IE6下话费的事件较多。  3.在以100000次为基数的情况下,字符串拼接在IE6下,明显花的时间更多,其他浏览器相差不大,有的反而比StringBuffer更短。 结论 1.在拼接词数少于1000次的情况下,大胆的使用前者,一般我们也很少碰到拼接次数上千的情况。  2.其他浏览器对于拼接都没什么性能问题,主要是IE6,如果拼接次数上万或者十万的话,建议单独对IE6是用StringBuffer模拟。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部