JavaScript. Свойства объекта Number

Свойства объекта Number


Содержание


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

1. Обзор свойств объекта Number

Объект Number обладает следующими свойствами:

  • EPSILON – значение, определяющее минимально возможную точность вычислений;
  • MAX_SAFE_INTEGER – максимальное безопасное целочисленное значение;
  • MAX_VALUE – максимально возможное числовое значение;
  • MIN_SAFE_INTEGER – минимальное безопасное целочисленное значение;
  • MIN_VALUE – минимально возможное значение;
  • NaN – значение Not a Number;
  • NEGATIVE_INFINITY – обозначение отрицательной бесконечности;
  • POSITIVE_INFINITY – обозначение положительной бесконечности.

 

2. Свойство Number.EPSILON. Указание точности вычислений для чисел с плавающей запятой

Свойство Number.EPSILON представляет значение, являющееся разницей между 1 и следующим значением с плавающей запятой, которое больше 1. Другими словами, Number.EPSILON является значением, обеспечивающим точность вычислений для чисел с плавающей запятой.

Пример.

// Свойство Number.EPSILON

// 1. Вывести значение свойства
alert(Number.EPSILON) // 2.220446049250313e-16

// 2. Равенство/неравенство между двумя числами
var x = 0.5
var y = 1.2 - 0.8 + 0.1

if (Math.abs(x-y) < Number.EPSILON)
  alert("x == y"); // x == y
else
  alert("x != y");

 

3. Свойства Number.MIN_SAFE_INTEGER и Number.MAX_SAFE_INTEGER. Границы безопасного представления целых чисел

Свойства Number.MIN_SAFE_INTEGER и Number.MAX_SAFE_INTEGER определяют границы корректного представления целых чисел. Как известно, все числовые значения в JavaScript являются 64-битными значениями с плавающей запятой согласно стандарту кодирования IEEE-754. Соответственно, кодирование целых чисел в 64-битном формате с плавающей запятой для целых чисел имеет свои ограничения или допустимые пределы. Эти границы и представлены именно этими константами.

Пример.

// Свойства Number.MIN_SAFE_INTEGER та NUMBER.MAX_SAFE_INTEGER

// Вывести значения свойств
alert(Number.MIN_SAFE_INTEGER) // -9007199254740991
alert(Number.MAX_SAFE_INTEGER) // 9007199254740991

 

4. Свойства Number.MIN_VALUE и Number.MAX_VALUE. Минимальное и максимальное значения числа

Свойства Number.MIN_VALUE и Number.MAX_VALUE представляют минимальное и максимальное положительное значение, которое может быть представлено в JavaScript.
Значение Number.MIN_VALUE – это положительное число с плавающей запятой, которое является наименьшим с точки зрения его приближенности к 0, ограниченной 64-битным кодированием согласно спецификации ECMAScript. Свойство Number.MIN_VALUE имеет примерное значение, равное 2-1024.

Доступ к свойствам MIN_VALUE и MAX_VALUE осуществляется как к глобальным статическим свойствам без создания объекта Number.

Свойство Number.MAX_VALUE представляет максимально возможное числовое значение, которое может быть получено для типа Number. Значение Number.MAX_VALUE примерно равно 21024.

Пример.

// Свойства Number.MIN_VALUE и NUMBER.MAX_VALUE

// Вывести значения свойств
alert(Number.MIN_VALUE) // 5e-324
alert(Number.MAX_VALUE) // 1.7976931348623157e+308

 

5. Свойство Number.NaN. Представление нечислового значения

Статическое свойство Number.NaN представляет собой объект, не являющийся числом (Not a Number).
Работа свойства тесно связана с функцией isNaN(), возвращающей true, если объект Number не является числом.

Пример.

// Свойства Number.MIN_VALUE и NUMBER.MAX_VALUE
var a = Number.NaN
var res = Number.isNaN(a) // res = true

a = 0/0 // a = NaN або Number.NaN

 

6. Свойства Number.NEGATIVE_INFINITY и Number.POSITIVE_INFINITY. Отрицательная и положительная бесконечность

Статическое свойство Number.NEGATIVE_INFINITY определяет отрицательное значение бесконечности, представленное глобальным свойством Infinity. Согласно этому, статическое свойство Number.POSITIVE_INFINITY равно значению Infinity глобального свойства.

Поведение свойств Number.NEGATIVE_INFINITY и Number.POSITIVE_INFINITY отличается от математической бесконечности.

Для значения NEGATIVE_INFINITY можно выделить следующие особенности:

  • произведение NEGATIVE_INFINITY на любое положительное значение (включая POSITIVE_INFINITY) дает результат NEGATIVE_INFINITY;
  • произведение NEGATIVE_INFINITY на любое отрицательное значение (включая NEGATIVE_INFINITY) равно POSITIVE_INFINITY;
  • если любое положительное значение разделить на NEGATIVE_INFINITY, то результатом будет отрицательный нуль;
  • если любое отрицательное значение разделить на NEGATIVE_INFINITY, то результатом будет положительный нуль;
  • произведение нуля на NEGATIVE_INFINITY дает NaN;
  • NaN умножить на NEGATIVE_INFINITY дает NaN;
  • если NEGATIVE_INFINITY разделить на отрицательное значение кроме NEGATIVE_INFINITY, то результат будет равен POSITIVE_INFINITY;
  • если NEGATIVE_INFINITY разделить на любое положительное значение кроме POSITIVE_INFINITY, то результат будет равен NEGATIVE_INFINITY;
  • если NEGATIVE_INFINITY разделить на NEGATIVE_INFINITY, то результат будет равен NaN;
  • если NEGATIVE_INFINITY разделить на POSITIVE_INFINITY, результат будет равен NaN;
  • для любого числа x, которое не равно NEGATIVE_INFINITY выполняется условие: x>NEGATIVE_INFINITY.

Для значения POSITIVE_INFINITY характерны следующие свойства:

  • если умножить любое положительное значение (включая POSITIVE_INFINITY) на POSITIVE_INFINITY, результат будет POSITIVE_INFINITY;
  • если умножить любое отрицательное значение (включая NEGATIVE_INFINITY) на POSITIVE_INFINITY, то результат будет NEGATIVE_INFINITY;
  • если разделить любое положительное значение на POSITIVE_INFINITY, то результат будет положительным нулем;
  • если разделить любое отрицательное число на POSITIVE_INFINITY, то результат будет отрицательный ноль;
  • если умножить ноль на POSITIVE_INFINITY, результат будет NaN;
  • если NaN умножить на POSITIVE_INFINITY, результат будет NaN;
  • если POSITIVE_INFINITY разделить на любое отрицательное значение (кроме NEGATIVE_INFINITY), то результат будет равен NEGATIVE_INFINITY;
  • если POSITIVE_INFINITY разделить на любое положительное значение кроме POSITIVE_INFINITY, результат будет равен POSITIVE_INFINITY;
  • если POSITIVE_INFINITY разделить на NEGATIVE_INFINITY, то результат будет равен NaN;
  • если POSITIVE_INFINITY разделить на POSITIVE_INFINITY, то результат будет равен NaN;
  • для любого числа x отличного от POSITIVE_INFINITY выполняется утверждение: Number.POSITIVE_INFINITY > x.

Пример.

// Свойства Number.NEGATIVE_INFINITY и NUMBER.POSITIVE_INFINITY

// 1. Присвоить свойство Infinity переменной a
var a = Infinity

// 2. Свойство Number.NEGATIVE_INFINITY
var b

b = Number.NEGATIVE_INFINITY * Number.POSITIVE_INFINITY // Number.NEGATIVE_INFINITY
b = Number.NEGATIVE_INFINITY * 25 // b = Number.NEGATIVE_INFINITY

b = Number.NEGATIVE_INFINITY * (-25) // b = Number.POSITIVE_INFINITY
b = Number.NEGATIVE_INFINITY * Number.NEGATIVE_INFINITY // Number.NEGATIVE_INFINITY

b = 25 / Number.NEGATIVE_INFINITY // отрицательный 0
b = -25 / Number.NEGATIVE_INFINITY // положительный 0

b = 0 * Number.NEGATIVE_INFINITY // NaN

b = NaN * Number.NEGATIVE_INFINITY // NaN

b = Number.NEGATIVE_INFINITY / (-25) // Number.POSITIVE_INFINITY
b = Number.NEGATIVE_INFINITY / 25 // Number.NEGATIVE_INFINITY

b = Number.NEGATIVE_INFINITY / Number.NEGATIVE_INFINITY // NaN

b = Number.NEGATIVE_INFINITY / Number.POSITIVE_INFINITY // NaN

a = 30
if (a>Number.NEGATIVE_INFINITY)
  alert("30 > Number.NEGATIVE_INFINITY"); // +
else
  alert("30 <= Number.NEGATIVE_INFINITY");

// 3. Свойство Number.POSITIVE_INFINITY

b = Number.POSITIVE_INFINITY * 25 // b = Number.POSITIVE_INFINITY
b = Number.POSITIVE_INFINITY * Number.POSITIVE_INFINITY // POSITIVE_INFINITY

b = Number.POSITIVE_INFINITY * (-25) // b = Number.NEGATIVE_INFINITY
b = Number.POSITIVE_INFINITY * Number.NEGATIVE_INFINITY // Number.NEGATIVE_INFINITY

b = 25 / Number.POSITIVE_INFINITY // положительный ноль
b = (-25) / Number.POSITIVE_INFINITY // отрицательный ноль

b = Number.POSITIVE_INFINITY * 0 // NaN
b = Number.POSITIVE_INFINITY * Number.NaN // NaN

b = Number.POSITIVE_INFINITY / (-25) // Number.NEGATIVE_INFINITY
b = Number.POSITIVE_INFINITY / 25 // Number.POSITIVE_INFINITY

b = Number.POSITIVE_INFINITY / Number.NEGATIVE_INFINITY // NaN
b = Number.POSITIVE_INFINITY / Number.POSITIVE_INFINITY // NaN

a = 30
if (Number.POSITIVE_INFINITY > a)
  alert("Number.POSITIVE_INFINITY > a"); // +
else
  alert("Number.POSITIVE_INFINITY <= a");

 


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