var str="hello";
str ="world";
実際、このコードによってバックグラウンドで実行される手順は次のとおりです:
(1) "hello" を格納する文字列を作成します。
(2)「world」を格納する文字列を作成します。
(3) 接続結果を格納する文字列を作成します。
(4) str の現在の内容を結果にコピーします。
(5) 「world」を結果にコピーします。
(6) 結果を指すように str を更新します。
ステップ 2 ~ 6 は文字列の連結が完了するたびに実行されるため、この操作はリソースを非常に消費します。このプロセスが何百回、場合によっては何千回も繰り返されると、パフォーマンスの問題が発生する可能性があります。解決策は、Array オブジェクトを使用して文字列を保存し、join() メソッド (パラメータは空の文字列) を使用して最終的な文字列を作成することです。前のコードを次のコードに置き換えることを想像してください:
var str =new Array();
str[0]="hello"
str.join(""); >
この方法では、結合操作は join() メソッドが呼び出されたときにのみ発生するため、配列にどれだけ多くの文字列が導入されても問題にはなりません。この時点での手順は次のとおりです。
(1) 結果を格納する文字列を作成します。
(2) 各文字列を結果内の適切な場所にコピーします。
this ._string= new Array();
}
StringBuilder.prototype.Append=function(str){
this._string.push(str);
StringBuilder.prototype.toString =function( ){
return this._string.join("");
}
効率を高めるための関連記事:
HTML を結合する最速の方法配列文字列
JavaScript で大きな文字列を接続するための StringBuffer クラス 詳細については、スクリプト ハウスの過去の記事を参照してください。