Клавиша / esc

Number.isFinite()

Поможет убедиться, что переданное значение — конечное число.

Время чтения: меньше 5 мин

Кратко

Скопировано

Метод Number.isFinite() позволяет проверить, является ли переданное в аргументе число конечным. Конечным числом можно считать любое число, кроме бесконечности и NaN. В JavaScript бесконечность можно выразить только с помощью глобального Infinity или полей Number.POSITIVE_INFINITY и Number.NEGATIVE_INFINITY.

В JavaScript есть так же глобальная функция isFinite(), которая работает аналогичным образом, но преобразует переданный аргумент в число.

Пример

Скопировано
        
          
          Number.isFinite(3.14)// trueNumber.isFinite(10e5)// trueNumber.isFinite(0)// trueNumber.isFinite(-Infinity)// falseNumber.isFinite([])// falseNumber.isFinite('Двадцать пять')// false// Использование глобальной функции isFiniteisFinite('Сорок')// falseisFinite(50)// trueisFinite('101')// trueisFinite('10e3')// true
          Number.isFinite(3.14)
// true
Number.isFinite(10e5)
// true
Number.isFinite(0)
// true

Number.isFinite(-Infinity)
// false
Number.isFinite([])
// false
Number.isFinite('Двадцать пять')
// false

// Использование глобальной функции isFinite
isFinite('Сорок')
// false
isFinite(50)
// true
isFinite('101')
// true
isFinite('10e3')
// true

        
        
          
        
      

Как понять

Скопировано

В математике конечным числом можно считать по сути любое число, потому что у числа есть конечное значение. Только у бесконечностей нет фиксированного и конечного значения. Метод Number.isFinite() позволяет проверить это свойство у переданного числа.

Как пишется

Скопировано

Метод Number.isFinite() принимает только один аргумент – число, которое нужно проверить. Для любого нечислового значения метод вернёт false.

        
          
          Number.isFinite('123')// false потому что передана строкаNumber.isFinite({})// false потому что передан объектNumber.isFinite(Infinity)// false потому что передали бесконечностьNumber.isFinite(NaN) //// false потому что передали не числоNumber.isFinite(123)// true, передали обычное числоNumber.isFinite(-456)// true, отрицательные числа тоже конечные
          Number.isFinite('123')
// false потому что передана строка
Number.isFinite({})
// false потому что передан объект
Number.isFinite(Infinity)
// false потому что передали бесконечность
Number.isFinite(NaN) //
// false потому что передали не число

Number.isFinite(123)
// true, передали обычное число
Number.isFinite(-456)
// true, отрицательные числа тоже конечные

        
        
          
        
      

Если возникает необходимость работать с бесконечностью, то в глобальном объекте Number имеются удобные ссылки на бесконечности с разными знаками.

        
          
          Number.POSITIVE_INFINITY === Infinity// trueNumber.NEGATIVE_INFINITY === -Infinity// true
          Number.POSITIVE_INFINITY === Infinity
// true
Number.NEGATIVE_INFINITY === -Infinity
// true

        
        
          
        
      

На практике

Скопировано

Егор Огарков советует

Скопировано

🛠 Number.isFinite можно использовать для того, чтобы проверить что значение в переменной является обычным конечным числом. Так как бесконечность тоже является числом, то проверка с помощью typeof вернёт "number". Но чаще всего мы не хотим работать в программе с бесконечными числами, потому что с ними нельзя провести математические операции.

        
          
          const inf = Infinity;console.log(typeof Infinity === "number") // true// Проверка поможет отсеять бесконечные числаconsole.log(Number.isFinite(inf)) // false
          const inf = Infinity;

console.log(typeof Infinity === "number") // true
// Проверка поможет отсеять бесконечные числа
console.log(Number.isFinite(inf)) // false