js では、文字列の連結が最もパフォーマンスの低い操作の 1 つであることがわかっています。
例:
文字列は不変であるため、これは、連結の結果を保存する中間文字列を作成することを意味します。バックグラウンドで頻繁に文字列の作成と破棄を行うと、パフォーマンスが非常に低下します。
例:
var buffer=[],i=0; buffer[i++]="Hello"; //通过相应索引值添加元素比push方法快 buffer[i++]=" World!"; var text=buffer.join("");
最近では、ブラウザーの文字列の最適化により、文字列の連結の状況が変わりました。 Safari、Opera、Chrome、Firefox、IE8 はすべて、加算演算子を使用するとパフォーマンスが向上します。ただし、IE8 より前のバージョンは最適化されていないため、配列メソッドは引き続き機能します。これは、文字列の連結時にブラウザ検出を行う必要があるという意味ではありません。連結方法を決定する際に考慮すべき点は、文字列のサイズと数です。
したがって、さまざまなブラウザーではパフォーマンスに一貫性がないため、選択されるテクノロジーは実際の状況と直面しているブラウザーによって異なります。
ほとんどの場合、加算演算子が推奨されます。ユーザーが主に IE6 または 7 を使用し、文字列のサイズが大きいか文字列の数が多い場合は、配列手法を使用する価値があります。
一般に、それがセマンティック文字列である場合、
のような配列は使用すべきではありません。
「こんにちは、私の名前は ' 名前です。
文字列が「同様の状況の繰り返し」である場合は、
のような配列を使用することをお勧めします。
var array = []; for (i = 0; i < length; i++) { array[i] = '<li>' + list[i] + '</li'>; } document.getElementById('somewhere').innerHTML = array.join('\n');