JavaScript数値変換関数比較
parseInt() と Number() の違いについて (日本語)
JavaScriptにおいて、数値に変換する関数として parseInt()
と Number()
がよく使用されます。これら2つの関数の主な違いは、変換方法と返される値の型にあります。
parseInt()
- 例
parseInt("10"); // 10 (10進数) parseInt("10", 2); // 2 (2進数)
- 基数
第二引数として指定できます。省略した場合、10進数とみなされます。 - 返り値
整数値 (integer) を返します。 - 変換方法
文字列から数値を解析し、指定された基数 (radix) に基づいて変換します。
Number()
- 例
Number("10"); // 10 (数値) Number(true); // 1 (数値) Number(null); // 0 (数値)
- 変換方法
さまざまな値を数値に変換します。数値、文字列、または数値に変換可能なオブジェクトを受け取ることができます。
パフォーマンス比較
一般的に、parseInt()
は Number()
よりもパフォーマンスが優れています。特に、文字列から整数に変換する場合、parseInt()
はより効率的です。これは、parseInt()
が整数値に特化しているためです。
ただし、Number()
はより柔軟性があり、さまざまな値を数値に変換できます。そのため、特定のユースケースによっては、Number()
が適している場合もあります。
- Number()
より柔軟性があり、さまざまな値を数値に変換できます。 - parseInt()
整数値への変換に特化し、パフォーマンスが優れています。
// 10進数から整数に変換
let num1 = parseInt("10");
console.log(num1); // 10
// 2進数から整数に変換
let num2 = parseInt("101", 2);
console.log(num2); // 5
// 非数値文字が含まれる場合
let num3 = parseInt("10abc");
console.log(num3); // 10 (非数値文字以降は無視される)
// 文字列から数値に変換
let num4 = Number("10");
console.log(num4); // 10
// 真偽値から数値に変換
let num5 = Number(true);
console.log(num5); // 1
// null から数値に変換
let num6 = Number(null);
console.log(num6); // 0
// オブジェクトから数値に変換
let obj = { value: 10 };
let num7 = Number(obj);
console.log(num7); // NaN (数値に変換できない)
JavaScript数値変換関数比較
関数 | 説明 | 返り値 |
---|---|---|
parseInt() | 文字列から整数に変換 | 整数値 |
Number() | さまざまな値を数値に変換 | 数値 |
パフォーマンス比較
一般的に、parseInt()
は Number()
よりもパフォーマンスが優れています。特に、文字列から整数に変換する場合、parseInt()
はより効率的です。
選択基準
- さまざまな値を数値に変換する
Number()
を使用 - 整数に変換する
parseInt()
を使用
注意
Number()
は数値に変換できない場合、NaN
を返します。parseInt()
は非数値文字を無視します。
ユニタリープラス演算子 (+)
- 例:
let num = +"10"; console.log(num); // 10
- 文字列を数値に変換する簡単な方法です。
算術演算
- 数値と演算を行うことで、文字列を数値に変換できます。
テンプレートリテラル
- 文字列と数値を組み合わせて、数値に変換できます。
カスタム関数
- 例:
function convertToNumber(value) { if (typeof value === "string") { return parseInt(value); } else if (typeof value === "number") { return value; } else { return NaN; } } let num = convertToNumber("10"); console.log(num); // 10
- 独自の変換ロジックを実装することができます。
- パフォーマンス
一般的に、parseInt()
とNumber()
は他の方法よりもパフォーマンスが優れています。 - 柔軟性
カスタム関数を使用することで、独自の変換ロジックを実装できます。 - シンプルさ
ユニタリープラス演算子や算術演算が適しています。
- これらの代替方法は、
parseInt()
とNumber()
と同じ結果を返すとは限りません。特に、非数値文字が含まれる場合や、特定の変換ロジックが必要な場合は、parseInt()
とNumber()
を使用することを検討してください。
javascript performance