tryparseint - JavaScriptのparseInt(string)とNumber(string)の違いは何ですか?




parseintとは (4)

この質問には既に回答があります:

JavaScriptのparseInt(string)Number(string)の違いは何ですか?


@ sjngmの答えに対する補遺:

両方とも空白を無視します。

var foo = "3"; console.log(parseInt(foo)); // 3 console.log(Number(foo)); // 3

それは正確ではありません。 sjngmはparseIntを書いているので、文字列を最初の番号に解析します。 それは本当です。 しかし問題は、空白で区切られた数値を解析する場合です。 "12 345"。 その場合
parseInt("12 345")12345代わりに12を返します。 そのような状況を避けるために、 解析する前に空白を切り捨てて番号にする必要があります 。 私の解決策は:

     var number=parseInt("12 345".replace(/\s+/g, ''),10);

parseInt()関数で使用したことをもう一つ気づかせてください。 parseInt("string",10)数値を10進形式に設定します 。 "08"のような文字列を解析すると、 8は8進数ではないので0が得られます。


@ sjngmの答えに対する補遺:

両方とも空白を無視します。

var foo = "    3     ";
console.log(parseInt(foo)); // 3
console.log(Number(foo)); // 3

parseInt(string)は、数値以外の文字を含む文字列を数値に変換します。文字列が数字で始まる場合

'10px' => 10

文字列に数値以外の文字が含まれている場合、 Number(string)はNaNを返します。

'10px' => NaN

最初のパラメータは2つのパラメータをとります:

parseInt(string, radix)

radixパラメータは、使用する数値体系を指定するために使用します。たとえば、基数16(16進数)は、文字列内の数値を16進数から10進数に解析する必要があることを示します。

radixパラメータを省略すると、JavaScriptは次のことを仮定します。

  • 文字列が "0x"で始まる場合、
    基数は16(16進数)です。
  • 文字列が "0"で始まる場合、基数は8(8進数)です。 この機能
    推奨されていません
  • 文字列が他の値で始まる場合、基数は10(10進)

あなたが言及した他の関数は、ただ1つのパラメータをとります:

Number(object)

Number()関数は、オブジェクトの引数をオブジェクトの値を表す数値に変換します。

値を正当な数値に変換できない場合は、NaNが返されます。







string-conversion