天天看点

字符串拼接方式(待商榷)

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <title>字符串拼接方式</title>

    <script type="text/javascript">

        //方法一:普通拼接

        var begindate = new date();

        var str = "";

        for (var i = 0; i < 100000; i++) {

            str += "text";

        }

        var enddate = new date();

        document.write("方法一:普通拼接,耗时:" + (enddate.gettime() - begindate.gettime()) + "毫秒<br/>");

        //方法二:数组拼接

        function stringbuilder() {

            this.__strings__ = new array;

        stringbuilder.prototype.append = function (str) {

            this.__strings__.push(str);

        stringbuilder.prototype.tostring = function () {

            return this.__strings__.join("");

        var begindate2 = new date();

        var builder = new stringbuilder();

            builder.append("text");

        var result = builder.tostring();

        var enddate2 = new date();

        document.write("方法二:数组拼接,耗时:" + (enddate2.gettime() - begindate2.gettime()) + "毫秒<br/>"); 

    </script>

</head>

<body>

</body>

</html>

《javascript高级程序设计》一书上说,直接拼接字符串会造成性能问题,应该采用array对象存储字符串,然后用join()方法创建最后的字符串。说可以节省50%~66%的时间,但是我测试发现,用数组拼接的方式往往还更耗时,如何解释呢?

继续阅读