double
float64
const maxInt = Number.MAX_SAFE_INTEGER; // 9007199254740991
const minInt = Number.MIN_SAFE_INTEGER; // -9007199254740991
minInt === -maxInt; // true
const maxDouble = Number.MAX_VALUE; // 1.7976931348623157e+308
const minDouble = Number.MIN_VALUE; // 5e-324
Экспоненциальное представление чисел
const minusTwo = -2e0; // -2
const one75 = 175e-2; // 1.75
e
e
const zero = 0e0; // 0; смещает точку относительно 0.0 на 0 позиций
const zero5 = 5e-1; // 0.5; смещает точку относительно 5.0 на одну позицию влево
const fifty = 5e1; // 50; смещает точку относительно 5.0 на одну позицию вправо
const alsoFifty = 5e+1; // 50; аналогично, смещение вправо на одну позицию
const minusFifty = -5e+1; // -50; смещает точку относительно -5.0 на одну позицию вправо
const seventeen5 = 1.75e1; // 17.5; смещение вправо на одну позицию
Использование разделителей в числах
const million = 1_000_000; // 1000000
const fiveK = 5_000; // 5000
const neatNumber = 1_2_3.3_2_1; // 123.321
const oops = 1__0; // Ошибка: только один знак подчеркивания допустим в качестве разделителя
const nope = 0_1; // Ошибка: разделитель не может стоять после ведущего ноля
Двоичная, восьмеричная и шестнадцатеричная системы
Двоичная система :
const five = 0b101; // 5
const alsoFive = 0B101; // 5; `b` нечувствителен к регистру
const max8bit = 0b1111_1111; // 255
const lessFive = -0b0101; // -5
Шестнадцатеричная система :
const max8bit = 0xff; // 255
const hexNum = -0xabc; // -2748
const max32bit = 0xffff_ffff; // 4294967295
Восьмеричная система :
const maxBit = 0o7; // 7
const eight = 0o10; // 8
const funnyZero = 0O0; // 0
BigInt: работа с большими числами
BigInt
n
const bigInt = 1234567890123456789012345678901234567890n; // Очень большое число
const bigTen = 10n; // 10n
const bigLess50 = -50n; // -50n
Специальные значения и NaN
Infinity === Number.POSITIVE_INFINITY; // true
-Infinity === Number.NEGATIVE_INFINITY; // true
const smallestFraction = Number.EPSILON; // 2.220446049250313e-16
smallestFraction === Math.pow(2, -52); // true
NaN
NaN === Number.NaN; // false !!
Number.isNaN(NaN); // true
NaN + 1; // NaN
NaN * 15; // NaN
NaN / NaN; // NaN
1 * NaN; // NaN
NaN
parseInt('abc'); // NaN
parseFloat('1.1.1'); // NaN
'abc' * 1; // NaN
new Number('abc'); // Number {NaN}
Чтобы избежать неожиданных ошибок, можно использовать встроенные функции для проверки чисел:
Number.isNaN('abc'); // false
Number.isFinite(123); // true
Number.isInteger(123); // true
Number.isSafeInteger(9007199254740992); // false
BigInt
Number
Number.isInteger(1n); // false
Number.isSafeInteger(1n); // false