今日のお題は、プロの Web プログラマーの中では有名なネタです。


JSON と組み合わせて AJAX っぽいコードを書くときは大活躍します。


知らなかった方は是非覚えて行ってください。



今日のお題は、「JavaScript の文字列結合の最適化」 です。



文字列の足し算をしたいときに、書き方によっては数百倍の実行速度の差が出てきます



普通の書き方


普通は、次のように書きますよね?


var s = 'aaa' + 'bbb' + 'ccc';

alert ( s );



これを次のように配列にしてデータを取っておいて、使うときに join でつなげてあげるだけで、実行速度は断然速くなります。



速い書き方


var s = [ 'aaa' , 'bbb' , 'ccc' ];

alert( s.join('') );



または



var s = new Array();

s.push( 'aaa' );

s.push( 'bbb' );

s.push( 'ccc' );

alert( s.join('') );



これだけで、足し算回数が多いときなら、IE では体感できるくらい速くなる場合があります。



是非試してみてください。



おまけ: 細かいお話


ちなみに、これは IE のときに特に有効な最適化方法です。私が試した限りでは、Firefox では Array.push の方がわずかに遅くなるようでした。ですが、その遅くなり方は非常にわずかで、数 ms という話です。しかし、IE の場合はその改善幅は数 ms 程度ではなく、きわめて大きな差になります。ですから、私は文字列の足し算は常に Array.push を使うほうが良いのではないかと思います。詳細等は下記の私のウェブサイトをご覧ください。


JavaScript の文字の結合を最適化する

http://keicode.com/script/scr03.php