JavaScriptにおける parseInt() と Number() の違い
JavaScript で文字列を数値に変換する場合、主に parseInt()
関数と Number()
コンストラクタの2つの方法があります。 それぞれの使い方や特徴、そして使い分けについて詳しく解説します。
parseInt() 関数
- 文字列の先頭から 連続する数値部分のみ を解析し、整数として返します。
- 解析対象となる数値部分の後に続く文字列は無視されます。
- 基数 (10進数、8進数、2進数など) をオプションで指定できます。
- 文字列の先頭に数値以外の文字列が含まれている場合、解析はそこで打ち切られ、NaN (Not a Number) を返します。
parseInt('123abc'); // 123 を返します
parseInt('0xFF', 16); // 255 を返します
parseInt('Hello, world!'); // NaN を返します
Number() コンストラクタ
- 引数として渡された 文字列全体 を数値に変換し、数値として返します。
- 文字列全体が数値に変換できない場合は、NaN を返します。
- 小数点を含む数値も変換できます。
- 基数は自動的に判定されます。
Number('123abc'); // 123 を返します
Number('0xFF'); // 255 を返します
Number('Hello, world!'); // NaN を返します
Number('12.34'); // 12.34 を返します
使い分け
- 数値部分のみを解析し、整数を取得したい場合は
parseInt()
関数を使用します。 - 文字列全体を数値に変換したい場合は、
Number()
コンストラクタを使用します。 - 基数を指定して解析したい場合は、
parseInt()
関数を使用します。 - 小数点を含む数値を解析したい場合は、
Number()
コンストラクタを使用します。