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

        
        
          
        
      

На практике

Секция статьи "На практике"

windrushfarer

Секция статьи "windrushfarer"

🛠 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