Number#toString、面白い2007年07月19日 09時02分14秒

すげー!!

Math.random().toString(36).slice(-8) で簡易パスワード生成。

Number#toString(36)!?Mozilla固有か??と思ったらJScriptでも通った。はて???

仕様を確認したら

radix が 2 から 36 の整数で、 10 でないならば、結果は文字列で、実装依存の選択となる。
へー、2~36なんだー。知らなんだーー。

いろんなブラウザで試してみる

ためしに

( 65535 ).toString( 36 );
を見てみることに。

javascript:alert( ( 65535 ).toString( 36 ) ) を実行

  • Firefox 2.0.0.4 - 「1ekf」
  • IE 6.0.2800.1106 - 「1ekf」
  • Opera 9.21 - 「1ekf」
  • Safari 3.0.2 - 「1ekf」
おお、手持ちのブラウザはみんな同じ結果だ。こりゃ面白い。

javascript:alert( ( 0.1 ).toString( 36 ) ) を実行

  • Firefox 2.0.0.4 - 「0.3lllllllllm」
  • IE 6.0.2800.1106 - 「0.3llllllllllq」
  • Opera 9.21 - 「0.1
  • Safari 3.0.2 - 「0.3llllllllllqsn8td1p464unmi」
あれっ?Operaだけそのまんまか??

どうもOperaは実数のtoStringはそのままの文字列表現で返すみたいだな。