parseInt、Number、単項プラス演算子:それぞれの特徴と使い分け

2024-04-02

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


Intl.NumberFormat オブジェクトを使用して数値をフォーマットする

Intl. NumberFormat オブジェクトは、ロケールに基づいて数値をフォーマットするために使用できます。上記コードでは、以下の設定をしています。style: 数値の書式設定スタイルを指定します。ここでは、通貨を表す "currency" を指定しています。...


MutationObserverを使ってJavaScriptで変数の変更を監視する

オブザーバーパターンは、オブジェクトの状態変化を監視し、その変化に応じて処理を実行するデザインパターンです。JavaScriptでは、Object. observe()メソッドを使ってオブザーバーパターンを実装できます。このコードでは、Object...


ES6でReactモジュールのすべての名前付きエクスポートを簡単にインポートする方法

ES6 では、import ステートメントを使用してモジュールをインポートできます。モジュールには、デフォルトエクスポートと名前付きエクスポートの両方を含めることができます。名前付きエクスポートを個別にインポートするには、それぞれにエイリアスを指定する必要があります。しかし、モジュール内のすべての名前付きエクスポートをインポートしたい場合は、エイリアスなしでインポートする方法があります。...


【JavaScript Tips】Promise.allで実行を制限!これで並列処理も安心!

forEach()ループを使う最も簡単な方法は、**forEach()**ループを使ってPromiseを順番に実行することです。以下のコードは、最大3つのPromiseを同時に実行する例です。**Promise. map()**は、Bluebirdなどのライブラリで提供されている関数で、配列の要素を順番にPromiseに変換して実行します。以下は、BluebirdのPromise...


TypeScriptにおける型システムを強化! export type の利点と使い方をわかりやすく解説

利点型情報のみのエクスポート: 実装コードをエクスポートせずに型情報のみをエクスポートできるので、コードのバンドルサイズを削減できます。型エイリアスの利便性: interfaceよりも簡潔で、型エイリアスと同じように使用できます。名前空間の整理: 関連する型定義をまとめてエクスポートすることで、名前空間を整理しやすくなります。...