Javascript parseInt関数

2006.10.04 Wednesday
parseInt(strNumber [,radix]);

第二引数は基数を表すけど、JAVAと違って省略したからって必ず10進数で変換されるわけじゃないらしいです。(JAVAの場合はradix省略時は10進数で変換。)

省略時、第一引数が 「 0X 」で始まれば16進数、「 0 」で始まれば8進数。だから「"08"」や「"09"」は、そもそも8進数として存在しない値だから、戻り値が「 0 」になっちゃう。だから第一引数に「 0 」から始まる値が入る可能性がある場合、radixの設定は必須なわけで。その原理で考えれば戻り値で「 0 」が戻ってくるのはバグじゃないんだろうけど...。

結局のところ、万が一に備えて第二引数もほぼ必須で考えた方が良さそうですね。楽しちゃダメってことですよね。最近は普通にAjaxの技術も見られますので、Javascriptについてもちゃんと勉強しないといけない気がしてきました。