JavaScript. Функции определяющее текущее состояние объекта Number

Функции определяющее текущее состояние объекта Number. Функции isFinite(), isInteger(), isNan(), isSafeInteger()


Содержание


Поиск на других ресурсах:

1. Функции определяющие состояние объекта Number. Перечень

В языке Java все числа представлены типом Number. Иными словами, для каждого числа определяется объект Number. При написании программ возможны случаи, когда это число может иметь неприемлемое для использования состояние, например, бесконечность при делении на 0. В этом случае нужно выполнить необходимую проверку. Для обработки различных состояний числа, в языке JavaScript полезными есть 4 функции объекта Number:

  • isFinite() – определяет, является ли число конечным;
  • isInteger() – определяет, является ли число целым;
  • isNan() – определяет, не является ли значение числом;
  • isSafeInteger() – определяет, является ли целочисленное значение безопасным с точки зрения стандарта IEEE-754.

 

2. Функция isFinite(). Определение признака конечности числа

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

isFinite(value)

или

Number.isFinite(value)

здесь

  • value – значение, проверяемое на конечность.

Функция возвращает значение логического типа. Если число конечно, то функция возвращает true. В противном случае (число не является конечным) функция возвращает false.

Приклад.

// Тип Number
// Функция isFinite()
var a = 10
var res = Number.isFinite(a) // res = true
res = isFinite(a / 0) // res = false

var b = a / 0
res = isFinite(b) // res = false

 

3. Функция isInteger(). Определение признака целого числа

Функция isInteger() позволяет определить, является ли указанное число целым. Общий вызов функции может быть следующим:

Number.isInteger(value)

здесь

  • value – проверяемое значение.

Функция возвращает true, если число является целым. Если в числе присутствует дробная часть, функция возвращает false.

Пример.

// Функция isInteger() - определить, есть ли число целым

// 1. Получить результат для числа
var a = 10
var res = Number.isInteger(a) // res = true

// 2. Получить результат для выражения
res = Number.isInteger(2+3.5) // res = false
res = Number.isInteger(20/4) // res = true
alert(res)

// 3. Использование функции в условном операторе
var x = 3 / 8

if (Number.isInteger(x)) // false
  alert("isInteger(3/8) => true");
else
  alert("isInteger(3/8) => false");

 

4. Функция isNan(). Определить, является ли указанное значение не числовым

С помощью функции isNan() можно определить, не является ли значение числовым. Иными словами, функция определяет, можно ли из некоторого значения образовать число. В наиболее общем случае вызов функции имеет вид

Number.isNan(value)

или

isNan(value)

здесь

  • value – значение, проверяемое на признак числа.

Функция возвращает true, если из value нельзя образовать число. В противном случае функция возвращает false.

Пример.

// Функция isNan() - определить, есть ли значение нечисловым

var res = Number.isNaN("10") // res = false

var a = 10
res = Number.isNaN(a) // res = false

res = Number.isNaN("abcd") // res = false
alert(res)

res = Number.isNaN(a/0) // res = false
res = Number.isNaN(0/0) // res = true
res = isNaN("5"/"6") // res = false
res = isNaN("abcd"/0) // res = true
res = isNaN(NaN) // res = true
alert(res)

// Использование функции в условном операторе
var x = 0 / 0

if (Number.isNaN(x)) // true
  alert("isNaN(0/0) => true");
else
  alert("isNaN(0/0) => false");

 

5. Функция isSafeInteger(). Определить, является ли значение безопасным целым числом

Функция isSafeInteger() определяет, является ли заданное целое число безопасным. Целое число считается безопасным, если оно:

  • может быть представлено как число двойной точности согласно стандарту IEEE-754;
  • в представлении стандарта IEEE-754 не может являться результатом округления любого другого целого числа с целью соответствия этому стандарту.

Стандарт IEE-754 описывает формат представления чисел с плавающей запятой.

Для определения границ безопасности целого числа используются константы.

Number.MIN_SAFE_INTEGER
Number.MAX_SAFE_INTEGER

определяющие соответственно верхнюю и нижнюю границы целого числа.

Константы MIN_SAFE_INTEGER и MAX_SAFE_INTEGER имеют следующие значения

MIN_SAFE_INTEGER = -(253 - 1)
MAX_SAFE_INTEGER = 253 - 1

Вызов функции может производиться с использованием имени объекта Number:

Number.isSafeInteger(value)

здесь

  • value – значение (или выражение), проверяемое на безопасность.

Пример.

// Функция isSafeInteger() - определить, безопасно ли целое число
var res = Number.isSafeInteger(150) // res = true

res = Number.isSafeInteger(Number.MAX_SAFE_INTEGER+1) // res = false
res = Number.isSafeInteger(Number.MIN_SAFE_INTEGER-1) // res = false

res = Number.isSafeInteger(Math.pow(2, 53)) // res = false
res = Number.isSafeInteger(Math.pow(2, 53) - 1) // res = true

res = Number.isSafeInteger(-Math.pow(2, 53)) // res = false
res = Number.isSafeInteger(-Math.pow(2, 53) + 1) // res = true

 


Связанные темы