Числа в JavaScript: тип Number

В этом руководстве вы узнаете о числах, типе чисел JavaScript Number и о том, как их эффективно использовать.

Введение в JavaScript Number

JavaScript использует тип  number для представления как целых чисел, так и значений с плавающей запятой. Технически number тип JavaScript использует формат IEEE-754.

ES2020 представил новый примитивный тип bigint, который представляет большие целые числа, значения которых больше 253 — 1.

Для поддержки различных типов чисел JavaScript использует различные форматы числовых литералов.

Целые числа

Ниже показано, как объявить переменную, содержащую десятичное целое число:

let counter = 100;

Целые числа могут быть представлены в следующих форматах:

  • Восьмеричный (основание 8)
  • Шестнадцатеричный (на основе 16)

Когда вы используете восьмеричные и шестнадцатеричные числа в арифметических операциях, JavaScript обрабатывает их как десятичные числа.

Восьмеричные числа

Восьмеричное буквальное число начинается с цифры ноль (0), за которой следует последовательность восьмеричных цифр (числа от 0 до 7). Например:

let num = 071; console.log(num);

Выход:

57

Если восьмеричное число содержит число, которое не находится в диапазоне от 0 до 7, механизм JavaScript игнорирует 0 и обрабатывает число как десятичное. Например:

let num = 080; console.log(num);

Выход:

80

Это неявное поведение может вызвать проблемы. Поэтому в ES6 появился новый восьмеричный литерал, начинающийся с 0o, за которым следует последовательность восьмеричных цифр(от 0 до 7). Например:

let num = 0o71; console.log(num);

Выход:

57

Если вы введете недопустимое число после 0o, JavaScript выдаст синтаксическую ошибку, подобную этой:

let num = 0o80; console.log(num);

Выход:

let num = 0o80; ^^ SyntaxError: Invalid or unexpected token

Шестнадцатеричные

Шестнадцатеричные числа начинаются с 0x или 0X, за которыми следует любое количество шестнадцатеричных цифр (от 0 до 9 и от a до f). Например:

let num = 0x1a; console.log(num);

Выход:

26

Число с плавающей запятой

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

let price = 9.99; 
let tax = 0.08; 
let discount = .05; // valid but not recommeded

Когда у вас очень большое число, вы можете использовать электронную нотацию. Электронная нотация указывает, что число должно быть умножено на 10, возведенное в заданную степень. Например:

let amount = 3.14e7; console.log(amount);

Выход:

31400000

Обозначение 3.14e7 означает, что нужно взять 3.14 и умножить на 107.

Точно так же вы можете использовать E-нотацию для представления очень небольшого числа. Например:

let amount = 5e-7; console.log(amount);

Выход:

0.0000005

Обозначение 5e-7 означает, что нужно взять 5 и разделить его на 10 000 000.

Кроме того, JavaScript автоматически преобразует любое число с плавающей запятой, содержащее не менее шести нулей после запятой, в электронную нотацию. Например:

let amount = 0.0000005; console.log(amount);

Выход:

5e-7

Числа с плавающей запятой точны до 17 знаков после запятой. Когда вы выполняете арифметические операции над числами с плавающей запятой, вы часто получаете приблизительный результат. Например:

let amount = 0.2 + 0.1; console.log(amount);

Выход:

0.30000000000000004

Большие целые числа

JavaScript представил тип bigint, начиная с ES2022. Тип bigint хранит целые числа, значения которых больше 253-1.

Большой целочисленный литерал имеет символ n в конце целочисленного литерала, например:

let pageView = 9007199254740991n;

Тип JavaScript Number представляет как целые числа, так и числа с плавающей запятой.

Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript