JavaScript - это реализация ECMAScript, указанная в Ecma-262 и ISO/IEC 16262. Ecma-262 указывает, что используется 64-разрядная двоичная с плавающей точкой IEEE 754.
В этом формате, наименьшее положительное число равно 2 -1074 (чуть более 4.94e-324), и самое большое конечное число равно 2 -2 (слегка под 1.798e308). Бесконечность может быть представлена, поэтому в этом смысле нет верхнего предела для значения числа в JavaScript.
Номера в этом формате имеют не более 53 бит в своих знаменателях (части фракций). (Числа под 2 -1022 являются субнормальными и имеют меньшее количество бит.) Ограниченное количество бит означает, что многие числа не являются точно отображаемыми, включая .02 в вашем примере. Следовательно, результаты арифметических операций округляются до ближайших представимых значений, а ошибки в цепочках вычислений могут отменяться или накапливаться даже катастрофически.
Формат также включает в себя некоторые специальные объекты, называемые NaN (для не числа). NaN могут использоваться для указания того, что число не было инициализировано, для специальных целей отладки или для представления результата операции, для которой не подходит число (например, квадратный корень из -1).