有关JS中字符串的相关文章,现在网上大概不计其数了。这里我不想再就这个问题做过多的论述,只是对几种方式的实现在各种浏览器中的执行效率进行对比做个总结。
拼接字符串,大体分为两种方式,一种通过+号拼接(方式1),这种方式在IE6中效率是极其低下的,因此就出现了第二种方式:采用数组保存,最后通过join拼接,这种方式的效率在IE6下对比会发现速度差异非常大。此外还有很多朋友估计没有注意过,数组拼接的方式又分为两种,一种是通过push将字符串放入数组(方式2),另外一种是通过arr[arr.length]='string'的方式存入(方式3),这两种方式的性能也是有一些差异的。这样,我们发现一共是有三种不同的方式的,下面我对这三种方式在不同浏览器下的执行效率做了个对比,具体数据就不贴出来(因为每次的数据都是不同的,但执行速度的排名是比较稳定的),只对他们的执行效率做个排名。
===========================================
浏览器 方式1 方式2 方式3 引擎 google 3 2 1 AppleWebKit/525.19 safari 3 2 1 AppleWebKit/528.16 opera 1 3 2 Presto/2.1.1 ff3 1 3 2 Gecko/2009042316 ff2 1 3 2 Gecko/20081201 IE8 1 3 2 Trident/4.0 IE7 3 2 1 未知 IE6 3 2 1 未知
=============================================
浏览器在不断更新:测试数据结果不一定都正确,我测试了chrome浏览器,++的拼接是最快的。
对比可做以下简单总结:
- 在FF及IE8中直接用+号拼接的方式还是效率的最高的方式,其它情况下该方式是最慢的。
- 数组拼接的方式里arr[arr.length]=''的方式是快于push方式的。
- 在进行字符串拼接的时间:1要判断浏览器类型,如果是+号拼接方式快则采用+号方式直接拼接,如果是数组方式,则采用arr[arr.length]=''的方式将字符串存入数组然后再采用join的方式拼接。
最后附上测试用到得代码(注:为准确测试,在不同浏览器要修改循环次数数值)
<html> <head> <title>Listing 1-2</title> <script type="text/javascript"><!-- function badTest() { var startTime = new Date().valueOf(); var s = ""; for (var i = 0; i < 100000; i++) { s += "This is a test string"; } return new Date().valueOf() - startTime; } function goodTest() { var startTime = new Date().valueOf(); var stringBuffer = new Array(); for (var i = 0; i < 100000; i++) { stringBuffer.push("This is a test string"); } var s = stringBuffer.join(""); return new Date().valueOf() - startTime; } function betterTest() { var startTime = new Date().valueOf(); var stringBuffer = new Array(); for (var i = 0; i < 100000; i++) { stringBuffer[stringBuffer.length] = "This is a test string"; } var s = stringBuffer.join(""); return new Date().valueOf() - startTime; } function doTests() { var htm = ""; htm += "Time badTest took: " + badTest() + "<br>"; htm += "Time goodTest took: " + goodTest() + "<br>"; htm += "Time betterTest took: " + betterTest(); htm += "<br>" + navigator.userAgent; document.getElementById("result").innerHTML = htm; } // --></script> </head> <body> <a href="javascript:void(0);" mce_href="javascript:void(0);" onClick="doTests();">Click here to test</a> <br><br> <div id="result"> </div> </body> </html>
相关推荐
主要介绍了Java字符串拼接效率测试过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
4. **可变字符串**:C# 中的 `StringBuilder` 类能够有效处理大量字符串拼接的情况,在需要频繁修改的情况下比直接使用字符串拼接效率更高。 5. **正则表达式**:C#提供了强大的正则表达式库,可以通过正则表达式...
主要给大家介绍了关于java中拼接字符串的5种方法效率对比的相关资料,文中通过示例代码和图片介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
那么通过如下代码,看一下在for循环中,不同的字符串拼接方式,到底哪种效率最高? package com.test.stringjoin; import org.apache.commons.lang3.StringUtils; public class Test { public static void main...
string与StringBuilder的在字符串拼接时执行效率上有差异,这篇文章主要介绍了详解.NET中string与StringBuilder在字符串拼接功能上的比较,感兴趣的小伙伴们可以参考一下
php大致有三种字符串连接: 1、直接用.来进行连接。 2、用.=进行连接。 3、先压入数组,再通过join函数连接。 下面分别对这三种方法的效率进行测试: 第一种方法代码如下: <?php function get_tm() { list ( ...
用于将一个大文本(包括多行)拼接字符串,不用手动去写代码去拼接,以提升开发效率
本文实例讲述了Python字符串拼接、截取及替换方法。分享给大家供大家参考,具体如下: python字符串连接 python字符串连接有几种方法,我开始用的第一个方法效率是最低的,后来看了书以后就用了后面的2种效率高的...
使用这种方式进行字符串连接的操作效率低下,因为python中使用 + 拼接两个字符串时会生成一个新的字符串,生成新的字符串就需要重新申请内存,当拼接字符串较多时自然会影响效率。 ②通过str.join()方法拼接 ...
cs代码-字符串拼接的各种方法: stringbuilder方法效率最好,可作为大数据量拼接字符串所用。
我结合下面译者的译注和上网查找得出的结论大概是这样的:对于IE/7,使用Aarry.join()连接大量字符串的效率确实优于使用+元素运算符,归根到底是由于IE
在开发中大家也都会注意尽量使用StringBuilder而不采用普通的字符串拼接方式。但是可能大部分开发者却忽略了js中也需要注意这种效率问题。 下面进行一项性能测试,用事实来说话! 代码如下: function xntest(){ var ...
不是效率的问题 是 内存碎片的问题 用数组速度比“+”要慢 只是内存占的少和内存碎片少一些,现在根本不推荐用数组来处理了。
html字符串的连接方法有多种,但效率却有很大区别,大家可以感觉需要选择。
字符串拼接是所有程序设计语言都需要的操作。当拼接结果较长时,如何保证效率就成为一个很重要的问题。本文介绍的是Javascript中的字符串拼接,希望对你有帮助,一起来看。
JavaScript 字符串拼接的一些知识点分析,对于提高效率等,都是非常值得一看的。