parseInt と Number の挙動の違い。
parseInt と Number という2つがある。文字列 → 数値の型変換の関数を使おうとしてみんな一度くらいこの違いが気になるんじゃない?
違いをパパッと確認しよう
parseInt と Number の差異が如実に顕出するのは、次の例ではないでしょうか。
parseInt("64GB")
Number("64GB")
parseInt("0.1")
Number("0.1")
IntがほしいならparseInt が便利。
parseInt の結果を見てほしい
parseInt("1")
parseInt("10")
parseInt("0.1")
parseInt("010101")
parseInt("64GB")
parseInt("¥64")
parseInt("64円")
parseInt("第64回")
parseInt("2e1")
parseInt("0xFF")
parseInt("0xFF times")
少数が処理できないという、parseInt の名前の通りの仕様を除けば、概ね楽ちんに変換できる。
事前に文字列を処理して、必要なフォーマットに変換する手間がない。
parseInt は関数の名前( parseInt =Int に解釈する )の通りの動作だったり。
Number は本当の意味で型変換
Number は JS の Number 型であり、Number型の変数を返すので、本当の意味で型変換だと思うの
Number("1")
Number("10")
Number("0.1")
Number("010101")
Number("64GB")
Number("¥64")
Number("64円")
Number("第64回")
Number("2e1")
Number("0xFF")
Number("0xFF times")
個人的な結論
parseIntは、単位が含まれたりする入力値してぱぱっと数字へ変換したいとき → 10px とか 100円とか、CSSの値を数値にしたいときに便利
Numberは厳密に文字列事前処理し、その結果を数字に正確に変換するときに使う。
基本はNumberを使う、事前処理などを無精するときはparseIntもまだまだ許容されると思う。
少数にならないCSSの文字列 element.style.width とか処理をするなら重宝する。