Learn JavaScript

Math.sqrt() - метод для вычисления квадратного корня в JavaScript

Math.sqrt() вычисляет квадратный корень числа.

Это один из самых понятных методов Math, когда нужно получить число, которое при умножении само на себя даёт исходное значение.

Синтаксис

Math.sqrt(x)

x - число, для которого нужно найти квадратный корень.

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

Метод возвращает квадратный корень числа.

console.log(Math.sqrt(9));  // 3
console.log(Math.sqrt(16)); // 4

То есть:

  • Math.sqrt(9) даёт 3
  • потому что 3 * 3 = 9

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

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

const result = Math.sqrt(25);

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

Не только целые результаты

Квадратный корень не всегда получается целым.

console.log(Math.sqrt(2)); // 1.4142135623730951

Это нормальное поведение. Метод возвращает точный числовой результат настолько, насколько позволяет формат number.

Корень из 0

Для нуля результат тоже предсказуемый.

console.log(Math.sqrt(0)); // 0

Отрицательные числа

Вот здесь важный момент.

console.log(Math.sqrt(-1)); // NaN

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

Math.sqrt() и Math.pow(x, 0.5)

Эти записи дают один и тот же результат.

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

Разница только в форме записи:

  • Math.sqrt(x) прямо говорит “квадратный корень”
  • Math.pow(x, 0.5) выражает ту же идею через степень

Если нужен именно квадратный корень, Math.sqrt() обычно читается понятнее.

Math.sqrt() и Math.cbrt()

Math.sqrt() работает именно с квадратным корнем.

console.log(Math.sqrt(9)); // 3

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

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

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

console.log(Math.sqrt("9"));   // 3
console.log(Math.sqrt(null));  // 0
console.log(Math.sqrt(true));  // 1
console.log(Math.sqrt(undefined)); // NaN

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

NaN и Infinity

Для специальных значений метод ведёт себя предсказуемо.

console.log(Math.sqrt(NaN));      // NaN
console.log(Math.sqrt(Infinity)); // Infinity

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

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

const value = 49;
const root = Math.sqrt(value);

console.log(value); // 49
console.log(root);  // 7

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

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

  • нужно найти длину, расстояние или диагональ
  • важно получить квадратный корень явно и читаемо
  • вы работаете с формулами, где есть x^2

Пример:

const area = 64;

console.log(Math.sqrt(area)); // 8

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

Ждать нормальное число для отрицательного значения

console.log(Math.sqrt(-9)); // NaN

Для обычных чисел JavaScript это нормальный результат.

Путать квадратный корень с округлением

console.log(Math.sqrt(10)); // 3.1622776601683795

Метод не округляет число, а вычисляет корень.

Забывать про неявное приведение типов

console.log(Math.sqrt(null)); // 0

Это происходит потому, что null приводится к 0.

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

  • Math.sqrt() вычисляет квадратный корень
  • метод возвращает number
  • для отрицательных чисел результатом будет NaN
  • Math.sqrt(x) и Math.pow(x, 0.5) дают один и тот же результат
  • если нужен именно квадратный корень, Math.sqrt() обычно читается проще

Коротко

Math.sqrt() - это стандартный способ найти квадратный корень числа в JavaScript. Главное, что стоит запомнить: для отрицательных значений метод возвращает NaN, а если нужен именно квадратный корень, запись через Math.sqrt() обычно понятнее, чем через степень 0.5.