JavaScriptで数値判定をするときにどうすればよいかまとめ
Number.isNaN()、Number.isFinite()はES6で策定されたものです。
結論として大抵の場合は、ES6が使える状態で型も含めた判定をするならNumber.isFinite(),そうでなければisFinite()もしくはポリフィルを使うといいでしょう。
判定結果は下記です。数値の判定なので数値でないことを判定するisNaNは!をつけていることに注意してください。
!isNaN | isFinite | !Number.isNaN | Number.isFinite | |
'str' | false | false | false | false |
'123str' | false | false | false | false |
123 | true | true | true | true |
'123' | true | true | true | false |
0xFF | true | true | true | true |
true | true | true | true | false |
undefined | false | false | true | false |
null | true | true | true | false |
NaN | false | false | false | false |
Infinity | true | false | true | false |
1/0 | true | false | true | false |
0 | true | true | true | true |
'0' | true | true | true | false |