[JavaScript]”010″が10として評価さず、8になってしまう。

JavaScriptで先頭0から始まる数字は8進数とみなされるからです。

例えば以下のコードは、8が表示されます。

<script>
    var value = parseInt( '010' );
    alert( value );
</script>



先頭に0が入ると8進数とみなされる仕様は、JavaScript以外にC言語も同様です。
“0x”が入ると16進数とみなされるのは有名ですが、先頭の0で8進数とみなすのは、一度はまると勘違いに気づかないので注意が必要です。


但し、javascriptで「+”010″」は10と評価されます。これは、Number()クラスが8進数を認識できないのが原因です。

関連記事

コメントを残す

メールアドレスが公開されることはありません。