JavaScript中的String是只讀的,所以每次對String變量的操作都會(huì)在內(nèi)存中產(chǎn)生一個(gè)零時(shí)變量,如果要對字符串進(jìn)行大量的重復(fù)操作,性能和效率都會(huì)很低下,因此常用數(shù)組的方法操作字符串,即先把字符串都存儲(chǔ)在數(shù)組中,然后使用join()方法連接字符串。
當(dāng)然可以把這種方法再演變一下,在JavaScript中模擬StringBuffer類。
<script type="text/javascript">
function StringBuffer(){
this._Strings = new Array();
}
StringBuffer.prototype = {
append : function(str){
this._Strings.push(str);
},
toString : function(){
return this._Strings.join(",");
}
}
var myvar = new StringBuffer();
myvar.append("a");
myvar.append("b");
myvar.append("c");
myvar.append("d");
myvar.append("e");
alert(myvar.toString());
</script>
可以把這種方法和原始的直接操作String的方法進(jìn)行對比,會(huì)發(fā)現(xiàn)效率提高了很多。(注意:要在IE里面進(jìn)行比較,在firefox里的效率是差不多的)