parseIntの第2引数
returnValue = parseInt(value);
のようにやっていたら、valueに'010'が入っているとreturnValueが8になるという現象に出くわした。
現象自体は単純で、'0'で始まる文字列は8進数とみなすということなんだろう。同様に'0x'で始まる文字列は16進数とみなされるようだ。
'010'でも10にする方法として思いついたのは、parseIntを使う前に文字列の先頭の'0'を削るというものだった。安直だがこれで十分だろうと思ったが、とりあえずparseInt自体を調べてみてそんなことをする必要がないことがわかった。
returnValue = parseInt(value, 10);
とやればいい。parseIntは第2引数に第1引数を解釈する基数*1を指定できるとのこと。