Урок 14: Работа с числами в JavaScript’е (математические операции, методы Math, преобразование типов)

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

Математические операции

Числа это основа любой программы. В JavaScript они используются для расчетов, анимаций, игр и многого другого. Давайте изучим базовые операции.

1. Базовые операторы

JavaScript поддерживает стандартные арифметические операторы:

  • + (сложение),
  • - (вычитание),
  • * (умножение),
  • / (деление),
  • % (остаток от деления),
  • ** (возведение в степень).

Примеры:

console.log(5 + 2);   // 7  
console.log(10 - 3);  // 7  
console.log(4 * 2);   // 8  
console.log(10 / 2);  // 5  
console.log(10 % 3);  // 1 (остаток от деления 10 на 3)  
console.log(2 ** 3);  // 8 (2 в степени 3)

2. Инкремент и декремент

Эти операторы увеличивают или уменьшают значение переменной на 1.

  • ++ (инкремент),
  • -- (декремент).

Важно:

  • Префиксная форма (++a) сначала изменяет значение, затем возвращает его.
  • Постфиксная форма (a++) возвращает исходное значение, затем изменяет его.

Пример:

let a = 5;
console.log(a++); // 5 (сначала выводим, потом увеличиваем)
console.log(a);   // 6

let b = 10;
console.log(++b); // 11 (сначала увеличиваем, потом выводим)

3. Комбинированные операторы

Для сокращения записи можно использовать операторы вида +=-=*=/=.

Пример:

let x = 10;
x += 5; // x = x + 5 → 15
x *= 2; // x = x * 2 → 30
console.log(x); // 30

Методы объекта Math

Объект Math содержит полезные методы для работы с числами. Рассмотрим ключевые из них.

1. Округление чисел

  • Math.round(x) — округляет до ближайшего целого.
  • Math.ceil(x) — округляет вверх («к потолку»).
  • Math.floor(x) — округляет вниз («к полу»).
  • Math.trunc(x) — отбрасывает дробную часть (работает как floor для положительных чисел).

Пример:

console.log(Math.round(3.7));  // 4  
console.log(Math.ceil(2.1));   // 3  
console.log(Math.floor(5.9));  // 5  
console.log(Math.trunc(-3.9)); // -3 (в отличие от floor, который дал бы -4)

2. Генерация случайных чисел

Math.random() возвращает случайное число от 0 (включительно) до 1 (не включая).
Чтобы получить число в заданном диапазоне, используйте формулу:
Math.random() * (max - min) + min.

Пример:

// Случайное число от 1 до 10:
let randomNumber = Math.floor(Math.random() * 10) + 1;
console.log(randomNumber);

3. Другие полезные методы

  • Math.max(a, b, c...) — возвращает наибольшее число.
  • Math.min(a, b, c...) — возвращает наименьшее число.
  • Math.pow(a, b) — возводит a в степень b.
  • Math.sqrt(a) — вычисляет квадратный корень.

Пример:

console.log(Math.max(5, 10, 3));  // 10  
console.log(Math.min(5, 10, 3));  // 3  
console.log(Math.pow(2, 3));      // 8  
console.log(Math.sqrt(16));       // 4  

Преобразование типов данных

Часто данные приходят в виде строк (например, из полей ввода), и их нужно преобразовать в числа. Рассмотрим способы.

1. Явное преобразование

  • Number(value) — преобразует строку в число. Если строка содержит нечисловые символы (кроме пробелов в начале/конце), вернет NaN.
  • parseInt(str) — извлекает целое число из строки.
  • parseFloat(str) — извлекает дробное число из строки.

Примеры:

console.log(Number('123'));        // 123  
console.log(Number('123.45'));     // 123.45  
console.log(Number('123abc'));     // NaN  
console.log(parseInt('100px'));    // 100  
console.log(parseFloat('12.5em')); // 12.5  

2. Унарный плюс

Сокращенный способ преобразовать строку в число, поставить перед ней +.

Пример:

let str = '50';
let num = +str; // 50 (число)
console.log(typeof num); // number

3. Особенности преобразований

  • NaN (Not a Number) — результат ошибки при преобразовании.
  • Проверить на NaN можно с помощью isNaN(value).

Пример:

let result = Number('JavaScript');  
console.log(result); // NaN  
console.log(isNaN(result)); // true  

Практические задачи

Закрепим знания на практике! Решите задачи ниже.

Задача 1: Площадь круга

Напишите функцию circleArea(radius), которая вычисляет площадь круга по формуле π * r². Используйте Math.PI.

Решение:

function circleArea(radius) {
  return Math.PI * radius ** 2;
}
console.log(circleArea(5)); // ≈78.54

Задача 2: Случайный пароль

Создайте функцию generatePassword(length), которая генерирует пароль из заданного количества цифр.

Решение:

function generatePassword(length) {
  let password = '';
  for (let i = 0; i < length; i++) {
    password += Math.floor(Math.random() * 10);
  }
  return password;
}
console.log(generatePassword(6)); // Например, "283905"

Задача 3: Конвертер валют

Напишите код, который запрашивает у пользователя сумму в долларах и конвертирует ее в евро (курс: 1 USD = 0.93 EUR). Используйте prompt и alert.

Решение:

let dollars = prompt('Введите сумму в USD:');
let euros = Number(dollars) * 0.93;
alert(`${dollars} USD = ${euros.toFixed(2)} EUR`);

Заключение

Сегодня мы изучили работу с числами в JavaScript. Выполнили математические операции, освоили методы объекта Math и научились преобразовывать типы данных. Обязательно потренируйтесь на задачах.

Полный курс «JavaScript для начинающих» доступен здесь — https://max-gabov.ru/javascript-dlya-nachinaushih