Разберёмся
isFinite(value) проверяет, является ли значение конечным числом (не Infinity / -Infinity / NaN) — после приведения к числу у глобальной версии.
isFinite(100);
isFinite(Infinity);
isFinite(NaN);
isFinite("10");
isFinite("oops");
Number.isFinite — предпочтительнее
Без coercion:
Number.isFinite(100);
Number.isFinite("100");
Number.isFinite(Infinity);
Number.isFinite(NaN);
На практике для «это именно конечное number» используйте Number.isFinite.
Зачем в UI/расчётах
Защита от деления на ноль, битых координат, parse ошибок:
function safePercent(part, whole) {
const x = part / whole;
return Number.isFinite(x) ? x * 100 : 0;
}
Итог: isFinite отсекает бесконечности и NaN; в современном коде берите Number.isFinite.