JavaScript中的String是只读的,所以每次对String变量的操作都会在内存中产生一个零时变量,如果要对字符串进行大量的重复操作,性能和效率都会很低下,因此常用数组的方法操作字符串,即先把字符串都存储在数组中,然后使用join()方法连接字符串。
当然可以把这种方法再演变一下,在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的方法进行对比,会发现效率提高了很多。(注意:要在IE里面进行比较,在firefox里的效率是差不多的)