文字列を数値に変換する方法と処理速度

Pocket

JavaScriptで文字列を数値に変換するには次のような方法が考えられます。

a = "123456789";
b = parseInt(a, 10);
b = parseFloat(a);
b = Number(a);
b = a - 0;
b = +a;

parseIntは整数に変換します。
parseFloatは浮動小数に変換します。
Numberは数値に変換します。new演算子を付けないと型変換になります。
4番目は文字列から0(ゼロ)を引きます。
5番目は文字列に「+」を付けます。

どれも同じ結果になりますが、スピードが違います。
Chrome(バージョン28)で確認しました。

方法 時間
parseInt(a, 10) 95
parseFloat(a) 100
Number(a) 43
a - 0 56
+a 56

Numberが最も速い結果になりました。
parseIntとparseFloatが正攻法に思っていましたが、処理は遅いです。
文字列から数値を引く、文字列にプラス記号を付ける、というのは邪道に思えるのですが、速いです。

念のためIE(バージョン10)でも試してみました。

方法 時間
parseInt(a, 10) 100
parseFloat(a) 83
Number(a) 87
a - 0 76
+a 72

文字列にプラスを付ける方法が最速でした。
ブラウザによっても速さに違いが出ます。

[ 2013年7月25日 | カテゴリー: JavaScript | タグ: , , , ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報