JAvascript ParseInt関数

1041 ワード

<script>
var b = parseInt("01");
alert("b="+b); // 1
var c = parseInt("09/08/2009");
alert("c="+c); // 0
</script>

答えはb=1,c=0です.
parseInt()は文字列を解析するために使用され、戻り値は整数です.いくつかの特徴があります.
1)、解析された文字列の先頭と最後のスペースを無視する、すなわち「111」と「111」は同じである
2)、正規フォーマットはparseInt(string,radix).radixは、0または2〜36の間の整数を省略して、解析された数値の進数を表すことができる.(解析結果の進数ではないことに注意).radixがこの範囲内でない場合はNaNを返します.
3)、radixが省略または0の場合、stringはデフォルト進数で解析されます.stringの先頭文字が0の場合、デフォルトでは8進数に解析されます.stringヘッダが0 xの場合、デフォルトでは16進数に解析されます.その他の場合、デフォルトは10進数です.4)、解析は最初に解析可能な文字から始まり、最初に解析できない文字(スペース、句読点など)まで終わります.後の文字は解析されません.最初の文字が解析できない場合は、NaNを返します.例えば、「a 8989」
今から振り返ってみると、この問題は理解しやすいです.
bの値の頭文字は0で、8進数で後の数値、すなわち8進数の1を解析します.自然戻り値は1です.
難点は2つ目です.
cの先頭文字は0であり,一般的には8進法で解析することが考えられる.しかし,2番目の文字9は8進数ではなく,すなわち9が解析できない最初の文字であることが分かった.parseInt(「09/08/2009」)もparseInt(「0」)になった.結果はもっと明らかだが、0だ.
parseInt(「0119/08/2009」)を少し変更すると、最初の文字は0で、8進数で解析し、同じように9まで読むと解析できません.parseInt(「011」)にもなり、結果も明らかになり、9です.