JSでは、文字列連結が最も低いパフォーマンス操作の1つであることを知っています。
例えば:
コードコピーは次のとおりです。
var text = "hello";
text+= "world!";
初期のブラウザはこの操作を最適化しませんでした。
文字列は不変であるため、これは接続の結果を保存するための中間文字列を作成することを意味します。バックグラウンドで文字列を作成して破壊することが多いため、制約のパフォーマンスは非常に貧弱です。
したがって、配列オブジェクトを使用して最適化を実行できます。
例えば:
var buffer = []、i = 0;バッファー[i ++] = "hello"; //対応するインデックス値を介して要素を追加すると、プッシュメソッドバッファー[i ++] = "world!"; var text = buffer.join( "");
初期のブラウザでは、中間文字列は作成されて破壊されておらず、多数の文字列連結の場合、この手法は追加方法を使用するよりもはるかに速く証明されています。
現在、文字列のブラウザの最適化により、文字列接続の状況が変わりました。 Safari、Opera、Chrome、Firefox、およびIE8はすべて、追加オペレーターを使用すると、パフォーマンスが向上します。ただし、IE8の前のバージョンは最適化されていないため、配列メソッドはまだ有効です。これは、文字列が接続されている場合、ブラウザー検出を実行する必要があるという意味ではありません。接続する方法を決定する際に考慮する必要があるのは、文字列のサイズと数です。
文字列が比較的小さく(20文字未満)、接続の数が少ない場合(1000未満)、すべてのブラウザは、追加演算子を使用して1ミリ秒以内に接続を簡単に完了できます。文字列の数またはサイズを増やすと、IE7のパフォーマンスが大幅に削減されます。文字列のサイズが大きくなると、Firefoxの追加演算子とコンポーネント技術のパフォーマンスの違いが小さくなります。文字列の数が増えると、追加演算子とサファリのコンポーネント技術のパフォーマンスの違いが小さくなります。 ChromeとOperaの添加剤オペレーターは、弦の数またはサイズを変更する際に常にリードを維持しています。
したがって、各ブラウザの一貫性のないパフォーマンスにより、テクノロジーの選択は実際の状況と直面しているブラウザに依存します。
ほとんどの場合、追加演算子が推奨されます。ユーザーが主にIE6または7を使用し、文字列サイズまたは多数が多い場合、アレイテクノロジーは価値があります。
一般的に言えば、それがセマンティック文字列である場合、次のようなアレイを使用しないでください。
「こんにちは、私の名前は ' +名前です。
文字列が「同様の状況の繰り返し」である場合、次のような配列を使用することをお勧めします。
var array = []; for(i = 0; i <length; i ++){array [i] = '<li>' + list [i] + '</li'>; } document.getElementById( 'どこか')。innerhtml = array.join( '/n');JS String Array接続のパフォーマンス比較のためのことはすべて、すべての人に役立つことを願っています。