1. ホーム
  2. javascript

[解決済み] parseInt()とNumber()の違いは何ですか?

2022-03-24 14:58:27

質問

どのように parseInt() Number() は、文字列を数値に変換する際に異なる動作をするのでしょうか?

どのように解決するのですか?

さて、それらは 意味的に異なる は、その Number 関数として呼び出されるコンストラクタ が実行されます。 型変換 parseInt が実行されます。 パース , 例:

// parsing:
parseInt("20px");       // 20
parseInt("10100", 2);   // 20
parseInt("2e1");        // 2

// type conversion
Number("20px");       // NaN
Number("2e1");        // 20, exponential notation

また parseInt は、現在使われている基数のどの桁にも対応しない末尾の文字を無視します。

この Number コンストラクタは暗黙の8進数を検出しませんが、 明示的な8進数表記を検出することができます。

Number("010");         // 10
Number("0o10")         // 8, explicit octal

parseInt("010");       // 8, implicit octal
parseInt("010", 10);   // 10, decimal radix used

と同じように16進数表記で数字を扱うことができます。 parseInt :

Number("0xF");   // 15
parseInt("0xF"); //15

さらに、Numeric型の変換を行うために広く使われているコンストラクトとして 単項 + 演算子 (P.72) を使用することと同等です。 Number コンストラクタを関数として使用します。

+"2e1";   // 20
+"0xF";   // 15
+"010";   // 10