[javascript] なぜそれはparseInt(8,3)== NaNとparseInt(16,3)== 1ですか?


Answers

同じ理由で

>> parseInt('1foobar',3)
<- 1

ドキュメントではparseIntは文字列を取ります。 そして

string文字列でない場合は、文字列に変換されます。

したがって、 '1foobar' 、または'1foobar'は最初に文字列に変換されます。

その後、

parseIntが指定された基数の数字ではない文字に遭遇すると、それを無視し、すべての後続の文字

できるだけそれを変換することを意味します。 foobarfoobarは無視され、前のものだけが変換されます。 何もない場合、 NaNが返されます。

Question

私はthis読んでthis、基数引数の章でparseIntに書かれているものは混乱している

なぜそれはparseInt(8, 3)NaNparseInt(16, 3)1ですか?

AFAIK 8と16は基数3の数字ではないので、 parseInt(16, 3) 16,3 parseInt(16, 3)NaNを返さなければなりません




Links