Learn JavaScript

Math.pow() - метод для возведения числа в степень в JavaScript

Math.pow() возводит число в степень.

Это классический способ записать операцию вида “основание в степени показатель” в JavaScript.

Синтаксис

Math.pow(base, exponent)
  • base - основание
  • exponent - показатель степени

Что делает Math.pow()

Метод берёт число и возводит его в указанную степень.

console.log(Math.pow(2, 3)); // 8
console.log(Math.pow(5, 2)); // 25

То есть Math.pow(a, b) означает a в степени b.

Что возвращает Math.pow()

Math.pow() возвращает число типа number.

const result = Math.pow(3, 4);

console.log(result);        // 81
console.log(typeof result); // "number"

Степень 0

Любое ненулевое число в степени 0 даёт 1.

console.log(Math.pow(5, 0));  // 1
console.log(Math.pow(-3, 0)); // 1

Отрицательная степень

Если показатель степени отрицательный, результатом будет дробь.

console.log(Math.pow(2, -1)); // 0.5
console.log(Math.pow(2, -2)); // 0.25

Это то же самое, что 1 / Math.pow(base, positiveExponent).

Дробная степень

Показатель степени может быть не только целым, но и дробным.

console.log(Math.pow(9, 0.5)); // 3
console.log(Math.pow(27, 1 / 3)); // 3

Так можно получать корни:

  • степень 0.5 - это квадратный корень
  • степень 1 / 3 - это кубический корень

Отрицательное основание и дробная степень

Здесь есть важный нюанс.

console.log(Math.pow(-9, 0.5)); // NaN

Не каждое отрицательное число можно корректно возвести в дробную степень в обычных числах JavaScript.

Math.pow() и оператор **

Сегодня Math.pow() часто сравнивают с оператором **.

console.log(Math.pow(2, 3)); // 8
console.log(2 ** 3);         // 8

По результату это одно и то же.

Разница в записи:

  • Math.pow(2, 3) - это вызов метода
  • 2 ** 3 - это специальный оператор

В современном коде часто используют именно **, потому что он короче и читается естественнее.

Math.pow() и умножение

Для небольших степеней можно просто умножать число само на себя, но Math.pow() удобнее и понятнее.

console.log(Math.pow(3, 2)); // 9
console.log(3 * 3);          // 9

Особенно это полезно, когда показатель степени не зашит прямо в коде.

0 в степени 0

В JavaScript этот случай возвращает 1.

console.log(Math.pow(0, 0)); // 1

Это может выглядеть неожиданно, но именно так работает метод.

Неявное приведение типов

Math.pow() пытается привести аргументы к числам.

console.log(Math.pow("2", "3")); // 8
console.log(Math.pow(true, 3));  // 1
console.log(Math.pow(null, 2));  // 0

На практике обычно лучше передавать уже готовые числа.

NaN и специальные значения

Если аргументы не удаётся корректно обработать как числа, результатом может стать NaN.

console.log(Math.pow(NaN, 2)); // NaN
console.log(Math.pow(2, NaN)); // NaN

Число не меняется

Math.pow() не изменяет исходные значения. Он только возвращает новый результат.

const base = 2;
const exponent = 3;
const result = Math.pow(base, exponent);

console.log(base);     // 2
console.log(exponent); // 3
console.log(result);   // 8

Когда это полезно

Math.pow() удобно использовать, когда:

  • нужно возвести число в степень
  • показатель степени хранится в переменной
  • хочется явно показать операцию через метод

Пример:

const side = 4;

console.log(Math.pow(side, 2)); // 16

Частые ошибки

Путать Math.pow() с умножением на показатель

console.log(Math.pow(2, 3)); // 8

Это не 2 * 3, а 2 * 2 * 2.

Забывать, что отрицательная степень даёт дробь

console.log(Math.pow(2, -2)); // 0.25

Здесь результат не отрицательный, а обратный.

Удивляться NaN при отрицательном основании и дробной степени

console.log(Math.pow(-9, 0.5)); // NaN

Это нормальное поведение для обычных чисел JavaScript.

Быстрая памятка

  • Math.pow(base, exponent) возводит число в степень
  • метод возвращает number
  • отрицательная степень даёт дробный результат
  • дробная степень может использоваться для корней
  • Math.pow() и ** дают одинаковый результат
  • в современном коде ** часто читается проще

Коротко

Math.pow() - это стандартный способ возвести число в степень в JavaScript. Главное, что стоит запомнить: отрицательные степени дают дробь, дробные степени могут использоваться для корней, а в современном коде рядом с ним часто используют более короткий оператор **.