W3docs

Числа в JavaScript

JavaScript, as a dynamic programming language, supports various types of numbers. Understanding these numbers is crucial for effective coding. This article

Введение в числа JavaScript

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

Понимание типов чисел

  • Обычные числа: JavaScript использует 64-битный формат IEEE-754, широко известный как «числа с плавающей запятой двойной точности». Это стандартный тип чисел в JavaScript.
  • BigInt числа: Предназначены для представления целых чисел произвольной длины. Используются в специфических сценариях, где требуется высокая точность.

Запись чисел в JavaScript

let billion = 1e9;  // 1 billion
let ms = 1e-6;     // One microsecond

Использование научной нотации упрощает запись больших или очень маленьких чисел.

Шестнадцатеричные, двоичные и восьмеричные числа

JavaScript поддерживает различные системы счисления:

  • Шестнадцатеричная (например, 0xFF)
  • Двоичная (например, 0b1010)
  • Восьмеричная (например, 0o744)

Метод toString

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

javascript— editable

Методы округления

JavaScript предоставляет несколько функций для округления чисел:

  1. Math.floor(): Округляет число вниз до ближайшего целого.
javascript— editable
  1. Math.ceil(): Округляет число вверх до ближайшего целого.
javascript— editable
  1. Math.round(): Округляет число до ближайшего целого в соответствии со стандартными математическими правилами.
javascript— editable
  1. Math.trunc(): Удаляет все дробные цифры, по сути усекая число.
javascript— editable

Работа с неточными вычислениями

Для разработчиков на JavaScript важно уметь работать с арифметикой с плавающей запятой и её особенностями, такими как известный случай 0.1 + 0.2 != 0.3.

javascript— editable

Специальные числовые значения

Понимание Infinity, -Infinity и NaN в JavaScript:

  • Infinity: Представляет бесконечность, значение, большее любого другого числа. Этот результат получается при делении числа на ноль или при превышении верхнего предела чисел с плавающей запятой.
  • -Infinity: Представляет отрицательную бесконечность, значение, меньшее любого другого числа. Возникает при делении отрицательного числа на ноль или при превышении нижнего предела чисел с плавающей запятой.
  • NaN: Аббревиатура от "Not-a-Number" (не число). Это значение возникает при выполнении неопределённой или невозможной математической операции, например, деления нуля на ноль.

Методы isNaN() и isFinite() для проверки этих специальных значений:

  • isNaN(): Проверяет, является ли значение NaN. Обратите внимание, что глобальная функция isNaN() выполняет неявное приведение типов, поэтому isNaN('hello') возвращает true. Для строгой проверки типа используйте Number.isNaN(), которая возвращает true только если значение действительно является NaN.
  • isFinite(): Проверяет, является ли значение конечным числом, возвращая false для Infinity, -Infinity или NaN.

Примеры:

  • isNaN('hello') возвращает true, так как строка приводится к NaN.
  • isFinite(2 / 0) возвращает false, поскольку 2 / 0 даёт Infinity, что не является конечным числом.

Числовое преобразование: parseInt и parseFloat

Эти функции парсят строку и возвращают целое или дробное число:

parseInt используется для преобразования строки в целое число. Вот как это работает:

  • Чтение начинается слева и останавливается на первом символе, который не является частью числа.
  • Если первый символ не может быть преобразован в число, возвращается NaN.
javascript— editable

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

javascript— editable

В этом примере parseFloat читает строку до тех пор, пока не встретит символ, не входящий в нотацию числа с плавающей запятой, после чего возвращает собранное до этого момента число.

Заключение

Обработка чисел в JavaScript отличается гибкостью и удовлетворяет широкий спектр потребностей программирования. Освоив эти концепции, разработчики смогут писать более надёжный и эффективный код. Справочники по другим типам данных см. в статьях Строки и Булевы значения.

Практика

Практика

What is true about JavaScript numbers?