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が付くときにしか顕在化しないので、なかなか気付かないものだ。