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
}
}
网友评论