-4
なぜconsole.log(parseInt(0o22,8))
出力1
ですか?なぜ "console.log(parseInt(0o22,8))"に "1"が表示される
なぜconsole.log(parseInt(0o22,8))
出力1
ですか?なぜ "console.log(parseInt(0o22,8))"に "1"が表示される
0oNNN
は、リテラルの8進数のECMAScript 2015構文です。
0o22
は、10進数で18
です。 parseInt
は文字列を必要とするため、この整数18
は、'18'
によってparseInt
に強制されます。そして8
以来、ベース-8で有効な数字ではない最初の数字の後にparseInt
ベイルアウトとparseInt
ためMDNのドキュメントから1
を返します。
parseInt
が数字でない文字に遭遇した場合指定された基数では、その基数とそれに続くすべての文字を無視し、その点まで解析された整数値を返します。parseInt
は、数値を整数値に切り捨てます。先頭と末尾のスペースは許されます。
も参照してください:How do I work around JavaScript's parseInt octal behavior?
あなたの質問3回繰り返す必要はありません:) –