Класс Number

Класс Number является классом-оберткой над элементарным типом number. Экземпляр класса создается по следующей схеме:

<Экземпляр класса> = new Number(<Начальное значение>);

Пример создания экземпляра класса:

let x = new Number(10);
console.log(x.toString());   // 10
console.log(typeof x);       // object

Таким способом редко пользуются. Все методы класса Number доступны и при использовании элементарного типа. Преобразование элементарного типа в объектный выполняется автоматически:

let x = 255;
console.log(x.toString(16)); // ff
console.log(typeof x);       // number

Если в операции участвуют число и экземпляр класса Number, то экземпляр класса будет автоматически преобразован в число:

let x = new Number(10);
let y = 255;
console.log(x + y);          // 265

Для преобразования значения в число можно использовать следующий формат:

<Переменная> = Number(<Значение>);

Пример преобразования строки в число:

let x = Number('10');
console.log(x);             // 10
console.log(typeof x);      // number

Свойства класса Number можно использовать без создания экземпляра класса:

  • MAX_VALUE — максимально допустимое в JavaScript число:
console.log(Number.MAX_VALUE); // 1.7976931348623157e+308
  • MIN_VALUE — минимально допустимое в JavaScript число:
console.log(Number.MIN_VALUE); // 5e-324
  • NaN — значение NaN:
console.log(Number.NaN);       // NaN
  • NEGATIVE_INFINITY — значение "минус бесконечность":
console.log(Number.NEGATIVE_INFINITY); // -Infinity
  • POSITIVE_INFINITY — значение "плюс бесконечность":
console.log(Number.POSITIVE_INFINITY); // Infinity
  • EPSILON — значение эпсилон:
console.log(Number.EPSILON); // 2.220446049250313e-16
  • MIN_SAFE_INTEGER — минимальное целочисленное значение:
console.log(Number.MIN_SAFE_INTEGER); // -9007199254740991
  • MAX_SAFE_INTEGER — максимальное целочисленное значение:
console.log(Number.MAX_SAFE_INTEGER); // 9007199254740991

Методы:

  • valueOf() — возвращает числовое значение экземпляра класса:
let x = new Number(15);
let y = x.valueOf();         // 15
console.log(typeof y);       // number
  • toString([<Основание>]) — возвращает строковое представление числа:
let x = 15;
let str = x.toString();      // "15"
console.log(typeof str);     // string
x = 100;
console.log(x.toString(2));  // 1100100
x = 119;
console.log(x.toString(8));  // 167
x = 255;
console.log(x.toString(16)); // ff
  • toFixed([<Число>]) — возвращает строковое представление числа, округленное до указанного числа цифр после точки. Если параметр не указан, то значение округляется до целого числа. Пример:
let x = 1234.6789;
console.log(x.toFixed());         // 1235
console.log(x.toFixed(1));        // 1234.7
console.log(x.toFixed(2));        // 1234.68
  • toPrecision([<Число>]) — возвращает строковое представление числа, округленное до указанного числа значащих цифр. Если параметр не указан, то метод аналогичен методу toString(). Пример:
let x = 0.06789;
console.log(x.toPrecision());     // 0.06789
console.log(x.toPrecision(1));    // 0.07
console.log(x.toPrecision(2));    // 0.068
  • toExponential([<Число>]) — возвращает строковое представление числа в экспоненциальной форме, округленное до указанного числа цифр после точки. Если параметр не указан, то округление не выполняется. Пример:
let x = 0.06789;
console.log(x.toExponential());   // 6.789e-2
console.log(x.toExponential(1));  // 6.8e-2
console.log(x.toExponential(2));  // 6.79e-2
  • toLocaleString() — возвращает строковое представление числа в зависимости от локали (показан результат при запуске в Web-браузере):
let x = 1027324.564;
console.log(x.toLocaleString('ru-RU')); // 1 027 324,564
console.log(x.toLocaleString('en-US')); // 1,027,324.564
console.log(x.toLocaleString('de-DE')); // 1.027.324,564

В Node.js версии 12 локализация не входит в состав устанавливаемых компонентов, поэтому во всех трех инструкциях получим представление числа в локали en-US:

let x = 1027324.564;
console.log(x.toLocaleString('ru-RU')); // 1,027,324.564
console.log(x.toLocaleString('en-US')); // 1,027,324.564
console.log(x.toLocaleString('de-DE')); // 1,027,324.564
  • isInteger(<Значение>) — возвращает значение true, если указанное значение является целым числом или вещественным числом, которое может быть преобразовано в целое число без потерь:
console.log(Number.isInteger(10));   // true
console.log(Number.isInteger(10.0)); // true
console.log(Number.isInteger(10.2)); // false
console.log(Number.isInteger('10')); // false
  • isSafeInteger(<Значение>) — возвращает значение true, если указанное значение является "безопасным" целым числом:
console.log(Number.isSafeInteger(10));              // true
console.log(Number.isSafeInteger(
                     Number.MAX_SAFE_INTEGER + 1)); // false
  • parseInt(<Строка>[, <Основание>]) — преобразует строку в целое число (аналог глобальной функции parseInt()). Строка считается заданной в системе счисления, указанной вторым необязательным параметром. Если основание не указано, то система счисления выбирается автоматически и зависит от префиксов в строке, например, если строка начинается с 0x, то будет использоваться основание 16. Если строка не может быть преобразована в число, возвращается значение NaN:
console.log( Number.parseInt('10') );         // 10
console.log( Number.parseInt('0xFF') );       // 255
console.log( Number.parseInt('0xFF', 16) );   // 255
console.log( Number.parseInt('0167', 8) );    // 119
console.log( Number.parseInt('1110111', 2) ); // 119
console.log( Number.parseInt('строка', 2) );  // NaN
  • parseFloat(<Строка>) — преобразует строку в число с плавающей точкой (аналог глобальной функции parseFloat()):
console.log( Number.parseFloat('5.2') );      // 5.2
console.log( Number.parseFloat('5e-2') );     // 0.05
console.log( Number.parseFloat('строка') );   // NaN
  • isFinite(<Значение>) — возвращает true, если значение не равно плюс или минус бесконечность или значению NaN, и false в противном случае (аналог глобальной функции isFinite()). В отличие от глобальной функции isFinite(), метод isFinite() из класса Number автоматически не преобразует указанное значение в число:
console.log( Number.isFinite('0') );          // false
console.log( isFinite('0') );                 // true
  • isNaN(<Значение>) — возвращает true, если значение равно NaN, и false в противном случае (аналог глобальной функции isNaN()). Пример:
let x = 10.0 / 0, y = 0.0 / 0, z = 5;
console.log( x + ' ' + y + ' ' + z ); // Infinity NaN 5
console.log( Number.isNaN(x) );       // false
console.log( Number.isNaN(y) );       // true
console.log( Number.isNaN(z) );       // false
 
console.log( Number.isFinite(x) );    // false
console.log( Number.isFinite(y) );    // false
console.log( Number.isFinite(z) );    // true

В отличие от глобальной функции isNaN(), метод isNaN() из класса Number автоматически не преобразует указанное значение в число:

console.log( Number.isNaN('str') );   // false
console.log( isNaN('str') );          // true

Учебник по Node.js и JavaScript
Учебник по JavaScript (Node.js) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов