JavaScriptで文字列を数値にするときは+valでやりたい
を見ていて、
「+val」で数値として評価するコードはライブラリの中でも時々見るので、自分でコード書くときも+valでやりたいなと思い、parseInt(Float)やNumerとの挙動の違いを少し調べてみたのでメモ。
環境はChromeのDeveloper Consoleでやっています。
値 | +val | ParseInt(val, 10) | ParseFloat(val, 10) | Number(val) | |
10 | 10 | 10 | 10 | 10 | |
"10" | 10 | 10 | 10 | 10 | |
-10 | -10 | -10 | -10 | -10 | |
"-10" | -10 | -10 | -10 | -10 | |
0 | 0 | 0 | 0 | 0 | |
"0" | 0 | 0 | 0 | 0 | |
"" | 0 | NaN | NaN | 0 | |
"hoge" | NaN | NaN | NaN | NaN | |
"10a" | NaN | 10 | 10 | NaN | |
"10.0" | 10 | 10 | 10 | 10 | |
"10.5" | 10.5 | 10 | 10.5 | 10.5 | |
"10e2 | 1000 | 10 | 1000 | 1000 | |
null | 0 | NaN | NaN | 0 | |
undefined | NaN | NaN | NaN | NaN |
この挙動を見る限り+valで問題ないので、+valを使っていこうかと思います