parseInt() と Number() の違いは何ですか? 質問する

parseInt() と Number() の違いは何ですか? 質問する

どうやってparseInt()そしてNumber()文字列を数値に変換するときに動作が異なりますか?

ベストアンサー1

まあ、意味的には違いますが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

さらに、数値型の変換を実行するために広く使用されている構造は、単項+演算子 (p. 72)Numberは、コンストラクタを関数として使用するのと同じです。

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

おすすめ記事