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 представляє собою об’єкт Number, що не є числом (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");

 


Споріднені теми