2011-12-19 19 views
0

可能性の重複:
Workarounds for JavaScript parseInt octal bug奇妙なjavascriptの出力

私はjavascriptのののparseInt()関数を学んでいただけ、とどこ

parseInt('08') returns 0 
の外に出しようとしていました

さらに

parseInt('07') returns 7 //which is correct 

が、再び

parseInt('09') returns 0 // really, are you kidding me.? 

どちらか私はクレイジーだか私は何かが足りないのですか?

+0

最後の例( '9'付き)はタイプミスですが、 '9'ではなく '09'からの驚くべき結果が得られます。 – Pointy

+0

関連:http://stackoverflow.com/questions/1545164/how-to-parseint-a-string-with-leading-0 –

+0

関連:http://stackoverflow.com/questions/7318385/problems-with-javascript -parseint –

答えて

2

で始まるときにそれらを適用します。

parseInt('08', 10); // base 10 radix 

JSLintを通してあなたのJavaScriptを実行するだけでなく、これを呼び出します。

ドキュメントから、parseIntは、基数が指定されていない場合、文字列が0で始まる場合、文字列を8進数として解析します。

3

そのため、8進数の文字列が0で始まる場合。

第2パラメータとして10の基数を渡す必要があります。

0

いいえ、あなたです。 8進数のためだけparseInt従うルールとあなたがradixを指定する必要がある文字列は0