29.2Standard Library / isFinite

`Number.isFinite`を使用する

グローバルな`isFinite`の代わりに`Number.isFinite`を使用します。グローバルな`isFinite`も型変換を行うため、予期せぬ結果になることがあります。

`isNaN` と同様に、グローバルな `isFinite()` は引数を数値に変換しようとします。`isFinite('2e3')` は、`'2e3'` が数値の `2000` に変換できるため `true` を返します。`Number.isFinite()` は型変換を行わず、引数が数値型であり、かつ無限大でない有限の値であるかだけをチェックします。これにより、より厳密な判定ができます。

❌ Bad
// bad
isFinite('2e3'); // true
✅ Good
// good
Number.isFinite('2e3'); // false
Number.isFinite(parseInt('2e3', 10)); // true