parseInt、Number、単項プラス演算子:それぞれの特徴と使い分け
JavaScriptで文字列を整数に変換する方法
parseInt()
関数は、文字列を整数に変換する最も一般的な方法です。以下のコード例のように、変換したい文字列をparseInt()
関数の引数として渡します。
const str = "123";
const num = parseInt(str);
console.log(num); // 123
parseInt()
関数は、文字列の先頭から数字が続く部分を見つけ、それを整数に変換します。数字以外が見つかった場合は、その部分以降は無視されます。
Number()
関数は、文字列だけでなく、様々な型を数値に変換することができます。以下のコード例のように、変換したい文字列をNumber()
関数の引数として渡します。
const str = "123";
const num = Number(str);
console.log(num); // 123
Number()
関数は、parseInt()
関数と同様に、文字列の先頭から数字が続く部分を見つけ、それを数値に変換します。ただし、Number()
関数は小数点を含む文字列も変換することができます。
単項プラス演算子 (+
) を文字列の前に付けることで、その文字列を数値に変換することができます。以下のコード例のように、変換したい文字列の前に単項プラス演算子を付けます。
const str = "123";
const num = +str;
console.log(num); // 123
単項プラス演算子は、parseInt()
関数やNumber()
関数よりも簡潔に記述できますが、小数点を含む文字列は変換できない点に注意が必要です。
各方法の比較
方法 | メリット | デメリット |
---|---|---|
parseInt() | 最も一般的 | 小数点を含む文字列は変換できない |
Number() | 小数点を含む文字列も変換できる | 誤った型変換が起こりやすい |
単項プラス演算子 | 簡潔に記述できる | 小数点を含む文字列は変換できない |
JavaScriptで文字列を整数に変換するには、parseInt()
関数、Number()
関数、単項プラス演算子の3つの方法があります。それぞれの方法の特徴を理解して、状況に応じて使い分けることが重要です。
// parseInt()関数
const str1 = "123";
const num1 = parseInt(str1);
console.log(num1); // 123
// Number()関数
const str2 = "123.45";
const num2 = Number(str2);
console.log(num2); // 123.45
// 単項プラス演算子
const str3 = "123";
const num3 = +str3;
console.log(num3); // 123
このコードを実行すると、以下の出力が得られます。
123
123.45
123
各方法の詳細
以下のコード例では、str1
は "123abc" という文字列です。parseInt()
関数は、この文字列の先頭から数字 "123" を見つけ、それを整数に変換します。abc
は数字ではないので、無視されます。
const str1 = "123abc";
const num1 = parseInt(str1);
console.log(num1); // 123
parseInt()
関数は、第2引数に基数を指定することができます。基数は、数字を表すための記数法の底です。例えば、基数を16とすると、16進数表記の文字列を整数に変換することができます。
以下のコード例では、str2
は "0x123" という16進数表記の文字列です。parseInt()
関数は、第2引数に16を指定することで、この文字列を10進数に変換します。
const str2 = "0x123";
const num2 = parseInt(str2, 16);
console.log(num2); // 291
以下のコード例では、str3
は "123.45" という小数点を含む文字列です。Number()
関数は、この文字列をそのまま数値に変換します。
const str3 = "123.45";
const num3 = Number(str3);
console.log(num3); // 123.45
const str4 = "123";
const num4 = +str4;
console.log(num4); // 123
文字列を整数に変換するその他の方法
eval()
関数は、文字列を式として評価し、その結果を返します。以下のコード例のように、eval()
関数を使って文字列を整数に変換することができます。
const str = "123";
const num = eval(str);
console.log(num); // 123
ただし、eval()
関数はセキュリティ上のリスクがあるため、使用には注意が必要です。
正規表現を使って、文字列から数字の部分を抽出することができます。以下のコード例のように、正規表現を使って文字列を整数に変換することができます。
const str = "123abc";
const num = str.match(/\d+/)[0];
console.log(num); // 123
正規表現は複雑なパターンにも対応できますが、習得に時間がかかるというデメリットがあります。
ライブラリを使う
JavaScriptには、文字列操作に関するライブラリが多数存在します。これらのライブラリを使うことで、簡単に文字列を整数に変換することができます。
例えば、Lodash: https://lodash.com/ というライブラリには、_.toNumber()
という関数があり、文字列を数値に変換することができます。
const _ = require('lodash');
const str = "123";
const num = _.toNumber(str);
console.log(num); // 123
ライブラリを使う方法は、コードを簡潔に記述することができますが、ライブラリの導入が必要になります。
文字列を整数に変換するには、様々な方法があります。それぞれの方法の特徴を理解して、状況に応じて使い分けることが重要です。
javascript string integer