Math.cbrt() вычисляет кубический корень числа.
Это число, которое при умножении само на себя три раза даёт исходное значение.
Синтаксис
Math.cbrt(x)
x - число, для которого нужно найти кубический корень.
Что делает Math.cbrt()
Метод возвращает кубический корень числа.
console.log(Math.cbrt(27)); // 3
console.log(Math.cbrt(8)); // 2
То есть:
Math.cbrt(27)даёт3- потому что
3 * 3 * 3 = 27
Что возвращает Math.cbrt()
Math.cbrt() возвращает число типа number.
const result = Math.cbrt(64);
console.log(result); // 4
console.log(typeof result); // "number"
Корень из 0
Для нуля результат тоже предсказуемый.
console.log(Math.cbrt(0)); // 0
Отрицательные числа
Это одна из самых полезных особенностей метода.
console.log(Math.cbrt(-8)); // -2
console.log(Math.cbrt(-27)); // -3
В отличие от Math.sqrt(), кубический корень для отрицательных чисел нормально существует в обычных числах JavaScript.
Math.cbrt() и Math.pow(x, 1 / 3)
На первый взгляд кажется, что это одно и то же, но есть важный нюанс.
console.log(Math.cbrt(27)); // 3
console.log(Math.pow(27, 1 / 3)); // 3
Для положительных чисел результат часто совпадает.
Но для отрицательных значений Math.cbrt() ведёт себя надёжнее:
console.log(Math.cbrt(-8)); // -2
console.log(Math.pow(-8, 1 / 3)); // NaN
Именно поэтому, если нужен именно кубический корень, лучше использовать Math.cbrt().
Не всегда целый результат
Кубический корень не обязан быть целым числом.
console.log(Math.cbrt(2)); // 1.2599210498948732
Это нормальное поведение.
Нюанс с -0
Если передать -0, результатом тоже будет -0.
console.log(Math.cbrt(-0)); // -0
Проверить можно так:
console.log(Object.is(Math.cbrt(-0), -0)); // true
Для большинства обычных задач это не мешает, но знать о таком поведении полезно.
Неявное приведение типов
Math.cbrt() сначала пытается привести аргумент к числу.
console.log(Math.cbrt("27")); // 3
console.log(Math.cbrt(null)); // 0
console.log(Math.cbrt(true)); // 1
console.log(Math.cbrt(undefined)); // NaN
На практике обычно лучше передавать в метод уже готовое число.
NaN и Infinity
Для специальных значений метод ведёт себя предсказуемо.
console.log(Math.cbrt(NaN)); // NaN
console.log(Math.cbrt(Infinity)); // Infinity
console.log(Math.cbrt(-Infinity)); // -Infinity
Число не меняется
Math.cbrt() не изменяет исходное значение. Он только возвращает новый результат.
const value = 125;
const root = Math.cbrt(value);
console.log(value); // 125
console.log(root); // 5
Когда это полезно
Math.cbrt() удобно использовать, когда:
- нужно найти кубический корень явно и читаемо
- важно корректно работать с отрицательными числами
- не хочется полагаться на запись через степень
1 / 3
Пример:
const volume = 64;
console.log(Math.cbrt(volume)); // 4
Частые ошибки
Использовать Math.pow(x, 1 / 3) вместо Math.cbrt()
console.log(Math.pow(-8, 1 / 3)); // NaN
Для отрицательных чисел такой вариант ненадёжен.
Путать кубический корень с квадратным
console.log(Math.sqrt(8)); // 2.8284271247461903
console.log(Math.cbrt(8)); // 2
Это разные математические операции.
Ждать только целые результаты
console.log(Math.cbrt(2)); // 1.2599210498948732
Корень вполне может быть дробным.
Быстрая памятка
Math.cbrt()вычисляет кубический корень- метод возвращает
number - он нормально работает с отрицательными числами
- для отрицательных значений он надёжнее, чем
Math.pow(x, 1 / 3) -0сохраняется как-0
Коротко
Math.cbrt() - это стандартный способ найти кубический корень числа в JavaScript. Главное, что стоит запомнить: в отличие от записи через степень 1 / 3, этот метод корректно и предсказуемо работает даже с отрицательными числами.