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進数を認識できないのが原因です。
関連記事
コメントを残す