昔調べたが忘れた件
strtime関数を作成していたとき実装パターン1と2についてどちらがいいのだ?と思ったと吟味して結局実装パターン2を採用した覚えがあるけど根拠とか忘れてしまった(--;
実装パターン1
function strftime(s, t) { var d = (t) ? new Date(t) : new Date(); return s.replace(/%./g, function($1){ switch($1) { case '%a': return ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'][d.getDay()]; // 中略 default: return ''; } }); };
実装パターン2
function strftime(s, t) { var i, v, f, b = s.split(''); var d = (t) ? new Date(t) : new Date(); for(i=0,f=s.length;i<=f;i++) { if(b[i] == '%') { b[i++] = ''; switch(b[i]) { case 'a': b[i] = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'][d.getDay()]; break; // ::中略 default: b[i] = ''; break; }; }; }; return b.join(''); };
というわけで
というわけでどっちがいいか色々な視点で吟味して再度エントリーしよう。