JavaScript:parseInt(“08”)の罠

JavaScriptの関数parseIntには、罠が仕掛けられていた。
具体的には、”08″, “09”のような値に対して処理を行うと8進数として捉えてしまうというものだ。
その結果、文字列08, 09はparseIntすると0が返ってきた。

なので、10進数で処理させるためには第二引数で10を指定する必要がある。

// 例 1桁の場合
var a1 = parseInt("8"); // a1 = 8
var b1 = parseInt("8", 10); // b1 = 8

// 例 2桁の場合
var a2 = parseInt("08"); // a2 = 0
var b2 = parseInt("08", 10); // b2 = 8

先頭に0が付くときにしか顕在化しないので、なかなか気付かないものだ。


カテゴリー JavaScript | タグ | パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です