2018-06-01 字符串拼接性能问题

2018-06-07  本文已影响0人  忙于未来的民工

var str1 = 'hello'

var subStr = 'world'

str1 += subStr

首先看下拼接字符串的整个过程:

1:创建str1

2:创建subStr

3:创建存储结果的字符串

4:将str1复制到存储结果的字符串

5:将subStr复制到存储结果的字符串

6:改变存储结果的字符串的指向,指向str1

每次拼接字符串时都会走这几步,如果拼接少看不出什么,如果拼接的字符串很多就会严重影响性能

可用如下用法解决这个问题:

var arr = []

arr[0] = 'hello'

arr[1] = 'world'

str = arr.join()

这个拼接的过程走的是如下几步:

1:创建存储结果的字符串

2:将数组中的字符串复制到存储结果的字符串中

这种方案可以很好的提高字符串拼接性能

可以将这种方法封装下:

function StringBuffer () {

this._string = new Array()

if (typeof StringBuffer._initialize === 'underfined') {

StringBuffer.prototype.append = function (str) {

this._string.push(str)

}

StringBuffer.prototype.toString = function () {

return this._string.join()

}

StringBuffer._initialize = true

}

}

上一篇 下一篇

猜你喜欢

热点阅读