1. 従来、文字列の連結は常に js で最もパフォーマンスの低い操作の 1 つでした。
var text="Hello";
text ="World!";
初期のブラウザでは、この操作が最適化されていませんでした。
文字列は不変であるため、連結の結果を保存するために中間文字列が作成されることを意味します。バックグラウンドで頻繁に文字列の作成と破棄を行うと、パフォーマンスが非常に低下します。
2. これを発見した後、開発者は最適化のために配列オブジェクトを使用しました。
varbuffer=[],i=0;
buffer[i ]="Hello";//対応するインデックス値を使用した要素の追加は、プッシュ メソッドより高速です
buffer[i ] =" World !";
var text=buffer.join("");
初期のブラウザでは、多数の文字列連結の場合、中間の文字列の作成と破棄が行われませんでした。加算方法を使用する方がはるかに高速であることが証明されています。
3. 現在、ブラウザーの文字列の最適化により、文字列の連結の状況が変わりました。
Safari、Opera、Chrome、Firefox、IE8 はすべて、加算演算子を使用するとパフォーマンスが向上します。ただし、IE8 より前のバージョンは最適化されていないため、配列メソッドは引き続き機能します。
これは、文字列の連結時にブラウザ検出を実行する必要があるという意味ではありません。連結方法を決定する際に考慮すべき点は、文字列のサイズと数です。
1) 文字列が比較的小さく (2) 文字列の数やサイズを増やすと、IE7 ではパフォーマンスが大幅に低下します。
3) 文字列サイズが大きくなるにつれて、Firefox の加算演算子と配列合成手法の間のパフォーマンスの差は小さくなります。
4) 文字列の数が増えると、Safari での加算演算子と配列合成手法のパフォーマンスの差は小さくなります。
5) 文字列の数やサイズを変更する場合、Chrome と Opera の加算演算子は常にリードを維持してきました。
したがって、さまざまなブラウザーではパフォーマンスに一貫性がないため、選択されるテクノロジーは実際の状況と直面しているブラウザーによって異なります。
ほとんどの場合、加算演算子が推奨されます。ユーザーが主に IE6 または 7 を使用し、文字列のサイズが大きいか文字列の数が多い場合は、配列手法を使用する価値があります。