LoginSignup
6
6

More than 5 years have passed since last update.

javascript 文字列を数字に変換する

Last updated at Posted at 2017-10-24

Number()は数字文字列以外が来たとき、NaNが返る

最近まで文字列→数字はNumber()使えばいいかなと思っていましたが、よくよく調べてみるとあまりよろしくないことがわかった。
理由は数字以外が来たとき、NaNが返るということ。

Number('94');    // 94
Number('94aba'); // NaN

バグって動かなくなってしまう可能性が残るのは怖い。
他にいい方法がないか調べた。

newは選択肢に無し

var hoge = new Number('49')

これでも数字になるんだけど、newを使わなくても他に選択肢があるし、型がオブジェクトになってしまうので無し。

暗黙の型変換は選択肢に無し

'100' - 0; //100

結構これしている記事を見かける。
文字列に文字を足したら暗黙的に数字になるというやつ。
ちょっといいかなーと思ったけど、動作が速い遅い関係無く

  • ぱっと見て何しているのか分からない。
  • コメントが書かれていて初めて「これは数字に変換する方法の1つなのか」ってわかるのはダメ。
  • そもそも暗黙の型変換なのでバグの元になる

っていう理由で無し。

今回の結論

parseIntparseFloatを使い分けるのがいいかなという結論。

parseInt('9.4', 10);    // 9
parseFloat('9.4');      // 9.4
parseFloat('94aaas2');  // 94

parseFloatって書くのが長い?面倒?

  • バグを防ぐ
  • コードがわかりやすい

以上の2点から、僕はparseInt,parseFloatを使おうと思います。←こちらに関してはコメントを頂いて考えを改めました。

6
6
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6