2013-06-02

JavaScript の parseInt ではまる



Java の parseInt は特に指定しなければ 10 進数として解析されるので油断していたのだけれど、
JavaScript の場合 parseInt は "010" で 8 進数、"0x10" で 16 進数として解釈されたりするのね。

parseInt("010", 10) とかって、入力値によっては基数を明示しとかないと困ることがあるのか。ほほう。

2 comments:

  1. 気になったので試してみたら、クリボウさんの記事のと挙動がちょっと違ったので書いてみました。
    http://sitekamimura.blogspot.com/2013/06/javascript-parseints-radix.html
    もし少しでも参考になれば。(^_^)

    ReplyDelete
  2. 情報ありがとうございます。新しいブラウザだと 0 が頭につく文字列でも 10 進数として扱われるんですね。職場のパソコンではまったので記事にしたんですが、今家で試してみたら確かに parseInt("010") は 10 になりました。

    ReplyDelete