Hatena::Groupos0x

FFFF RSSフィード

0xFFのメモです。

2008 January 31st Thursday

0で詰める

| 02:41 | 0で詰める - FFFF を含むブックマーク はてなブックマーク - 0で詰める - FFFF

0限定だけど。

function format0(str,len){
    return ('_' + Math.pow(10,len) + str).slice(-len);
}
console.log(format0('1',6));   // 000001
console.log(format0(456,6));   // 000456

扱う値が限定されていれば(時刻とか)、これで足りそう。

quaaquaa2008/01/31 20:49>ところで、Operaだとdocument.postMessageなんだよね。なんで違うんだ?

以前のHTML 5の仕様(http://www.whatwg.org/specs/web-apps/2006-01-01/#postmessageなど)ではpostMessageはDocumentの方に属していたので、おそらく実装時期によって違いが出ているんだと思います。

os0xos0x2008/01/31 20:57>quaaさん
おお、なるほど。納得です。
考えてみるとdocument同士のやり取りというより、window同士のやり取りに使う感じだからwindowのほうがしっくりきますね。

nanto_vinanto_vi2008/05/16 02:41'_' + Math.pow(10,len)
の代わりに
(1 << len).toString(2)
とすれば扱える桁数がちょっと増えるけど、ぱっとFirefoxで試した限り速度は遅くなるみたいですね。

それから「ユーザーエージェントに頼らないブラウザの判定」の追記部分「Firefox(Geckoエンジン)がNGでした」にins要素のタグ閉じ忘れがあります。

os0xos0x2008/05/16 03:11>nanto_viさん
なるほど。ぱっと見そちらのほうが速くなりそうですが、toStringがコスト高めなのかな。

タグ閉じ忘れの指摘ありがとうございます、修正しました。