Непривычные для нас виды чисел и работа с ними в JavaScript

Непривычные для нас виды чисел и работа с ними в JavaScript

@honey_and_money

В JavaScript существует заранее определенное значение, которое является результатом выполнения некорректной математической операции - например корень из отрицательного числа, или деление ноль на ноль.

Результатом таких операций будет значение NaN - сокращение от английского Not a Number - не число.

То есть если мы например напишем такие выражения:

То в консоли увидим следующее:

Почему я рассматриваю деление именно нуля на ноль? В JavaScript только деление ноль на ноль дает в результате NaN. При делении любых других чисел на ноль будет бесконечность - новое значение для нас.

Убедимся в этом;

Консоль:

Второе значение - infinity - бесконечность. Ведет себя точно так же как и в математике.

То есть мы можем просто взять названия заранее определенных значений и вывести их в консоль:

В консоли следующее:

Таким образом, эти значения не являются какими-либо переменными - это встроенные в язык значения.

Базовые операции с бесконечностью (Точно такие же как и в привычной нам математике):

Сумма двух бесконечностей - бесконечность

Сумма бесконечности и числа - бесконечность

Произведение двух бесконечностей - бесконечность

А вот уже деление двух бесконечностей - NaN

Так же в JS есть граница типа число - число не может быть бесконечно большим - при достижении огромных порядков, вместо него будет выводиться бесконечность.

Я вывожу в консоль такое число - это один умножить на десять в 308-й степени - большое число, но оно по прежнему выводится как число:

Стоит мне изменить степень на 309-ую, как уже будет выводиться бесконечность:

Так же как и с очень большими числами, существует граница для очень маленьких чисел - в какой-то момент будет выводиться ноль вместо настоящего значения.

То есть это число вида 0.000.....01 где может быть очень много нулей после точки. Не знаю какое это точно значение - вы это сможете найти в открытой документации (при желании). Просто знайте, что при работе с очень большими и очень маленькими числами - это норма.


@honey_and_money - Соберись и делай!

Report Page