Объект Number

Последнее обновление: 26.10.2023

Объект Number представляет числа. Чтобы создать число, надо передать в конструктор Number число или строку, представляющую число:

const x = new Number(34);
const y = new Number('34');
console.log(x+y); // 68

Определения x и y в данном случае будут практически аналогичны.

Однако создавать объект Number можно и просто присвоив переменной определенное число:

const z = 34;

Объект Number предоставляет ряд свойств и методов. Некоторые его свойства:

  • Number.MAX_VALUE: наибольшее возможное целое число. Приблизительно равно 1.79E+308. Числа, которые больше этого значения, рассматриваются как Infinity

  • Number.MIN_VALUE: наименьшее возможное положительное целое число. Приблизительно равно 5e-324 (где-то около нуля)

  • Number.NaN: специальное значение, которое указывает, что объект не является числом

  • Number.NEGATIVE_INFINITY: значение, которое обозначает отрицательную бесконечность и которое возникает при переполнении. Например, если мы складываем два отрицательных числа, которые по модулю равны Number.MAX_VALUE. Например:

    const x = -1 * Number.MAX_VALUE
    const y = -1 * Number.MAX_VALUE
    const z = x + y;
    if(z===Number.NEGATIVE_INFINITY)
    	console.log("отрицательная бесконечность");
    else
    	console.log(z);
    
  • Number.POSITIVE_INFINITY: положительная бесконечность. Также, как и отрицательная бесконечность, возникает при переполнении, только теперь в положительную сторону:

    const x = Number.MAX_VALUE
    const y = Number.MAX_VALUE
    const z = x * y;
    if(z===Number.POSITIVE_INFINITY)
    	console.log("положительная бесконечность");
    else
    	console.log(z);
    

Некоторые основные методы:

  • isNaN(): определяет, является ли объект числом. Если объект не является числом, то возвращается значение true:

    const a = Number.isNaN(Number.NaN); // true
    const b = Number.isNaN(true); // false - new Number(true) = 1
    const c = Number.isNaN(null);  // false - new Number(null) = 0
    const d = Number.isNaN(25);  // false
    const e = Number.isNaN("54"); // false
    

    Но следующее выражение вернет false, хотя значение не является числом:

    const f = Number.isNaN("hello"); // false
    

    Чтобы избежать подобных ситуаций, лучше применять глобальную функцию isNaN:

    const f = isNaN("hello"); // true
    
  • parseFloat(): преобразует строку в число с плавающей точкой. Например:

    const a = Number.parseFloat("34.90"); // 34.9
    console.log(a);
    const b = Number.parseFloat("hello"); // NaN
    console.log(b);
    const c = Number.parseFloat("34hello"); // 34
    console.log(c);
    
  • parseInt(): преобразует строку в целое число. Например:

    const a = Number.parseInt("34.90"); // 34
    console.log(a);
    const b = Number.parseInt("hello"); // NaN
    console.log(b);
    const c = Number.parseInt("25hello"); // 25
    console.log(c);
    
  • toFixed(): оставляет в числе с плавающей точкой определенное количество знаков в дробной части. Например:

    const a =  10 / 1.44;
    console.log("До метода toFixed(): ", a, "<br/>");
    a = a.toFixed(2); // оставляем два знака после запятой
    console.log("После метода toFixed(): ", a, "<br/>");
    

    Вывод браузера:

    До метода toFixed(): 6.944444444444445
    После метода toFixed(): 6.94
    

Преобразование в другую систему счисления

Выше мы рассматривали перевод строк в числа в десятичной системе. Но мы можем с помощью второго параметра явно указать, что хотим преобразовать строку в число в определенной системе. Например, преобразование в число в двоичной системе:

const num1 = "110";
const num2 = parseInt(num1, 2);
console.log(num2); // 6

Здесь в функцию parseInt в качестве второго параметра передается число 2, что указаывает, что первый параметр будет рассматриваться как число в двоичной системе. Результатом будет 6, так как 110 в двоичной системе - это число 6 в десятичной.

Из числа в строку, метод toString

Для преобразования числа в строку у него можно вызвать специальный метод toString():

const num = 10;
console.log(num.toString()); // 10

Однако в данном случае нет смысла вызывать у числа num метод toString(), так как число можно вывести на консоль без всяких преобразований. Тем не менее метод toString() может быть полезен - в качестве параметра он принимает основание системы счисления числа и может быть использован для вывода числа в определенной системе счисления:

const num1 = 0b0110;
// выводим число в двоичной системе 
console.log(num1.toString(2)); // 110

const num2 = 0xFF;
// выводим число в шестнадцатеричной системе 
console.log(num2.toString(16)); // ff
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850