js中的stringBuilder


Step 1.探秘 JavaScript里的字符串连接


举例:
var str = "good";
str += " morning";
代码实际执行步骤和C#中的类似
1.分配"good"的内存
2.分配" morning"的内存
3.开辟两个字符串连接后的内存
4.将str当前的内容复制到新内存
5.把" morning"复制到新内存
6.把str的引用指向新的内存
问题:当涉及到很多字符串连接时,就会感觉到效率问题
解决方法:用Array对象存储字符串,然后用join方法连接字符串
var array = new Array();

 // 查了一下W3C有关Array的创建,它说:"you can add as many values as you need to

 //define as many variables you require",试了下可以达到10的10次方的数量级
array[0] = "good";
array[1] = " morning";
var str = array.join("");

步骤:
1.开辟存储字符串的内存

2.将每个字符串复制到新的内存,str指向它

Step 2.如何实现javascript 的 StringBuilder

step2.stringBuilder类的实现
/*function StringBuilder() {
        console.log(this);
        //StringBuilder
        //    _stringArray: Array[2]
        //    __proto__: StringBuilder

        this._stringArray = new Array();
    }

    StringBuilder.prototype.append = function(str){
        this._stringArray.push(str);
    }
    StringBuilder.prototype.toString = function(joinGap){
        return this._stringArray.join(joinGap);
    }

    var stringBuilder = new StringBuilder();
    stringBuilder.append("hi");
    stringBuilder.append("haojie");

    console.log(stringBuilder.toString(" ")); // hi haojie */



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值