Непривычные для нас виды чисел и работа с ними в JavaScript
@honey_and_moneyВ JavaScript существует заранее определенное значение, которое является результатом выполнения некорректной математической операции - например корень из отрицательного числа, или деление ноль на ноль.
Результатом таких операций будет значение NaN - сокращение от английского Not a Number - не число.
То есть если мы например напишем такие выражения:
То в консоли увидим следующее:
Почему я рассматриваю деление именно нуля на ноль? В JavaScript только деление ноль на ноль дает в результате NaN. При делении любых других чисел на ноль будет бесконечность - новое значение для нас.
Убедимся в этом;
Консоль:
Второе значение - infinity - бесконечность. Ведет себя точно так же как и в математике.
То есть мы можем просто взять названия заранее определенных значений и вывести их в консоль:
В консоли следующее:
Таким образом, эти значения не являются какими-либо переменными - это встроенные в язык значения.
Базовые операции с бесконечностью (Точно такие же как и в привычной нам математике):
Сумма двух бесконечностей - бесконечность
Сумма бесконечности и числа - бесконечность
Произведение двух бесконечностей - бесконечность
А вот уже деление двух бесконечностей - NaN
Так же в JS есть граница типа число - число не может быть бесконечно большим - при достижении огромных порядков, вместо него будет выводиться бесконечность.
Я вывожу в консоль такое число - это один умножить на десять в 308-й степени - большое число, но оно по прежнему выводится как число:
Стоит мне изменить степень на 309-ую, как уже будет выводиться бесконечность:
Так же как и с очень большими числами, существует граница для очень маленьких чисел - в какой-то момент будет выводиться ноль вместо настоящего значения.
То есть это число вида 0.000.....01 где может быть очень много нулей после точки. Не знаю какое это точно значение - вы это сможете найти в открытой документации (при желании). Просто знайте, что при работе с очень большими и очень маленькими числами - это норма.
@honey_and_money - Соберись и делай!