Sqrt: примеры (JAVASCRIPT)

Math.sqrt() в JavaScript: вычисление квадратного корня с практическими примерами
Раздел: Математика, Корни
sqrt(number): number

Описание функции Math.sqrt() в JavaScript

Функция Math.sqrt() является статическим методом объекта Math, предназначенным для вычисления квадратного корня из числа. Эта функция применяется в математических расчетах, графике, физических симуляциях и алгоритмах, где требуется определить квадратный корень значения.

Функция принимает единственный аргумент: x — число, из которого необходимо извлечь квадратный корень. Аргумент может быть целым или дробным, положительным или отрицательным. Если передано нечисловое значение, оно будет неявно преобразовано в число.

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

Базовые примеры использования Math.sqrt()

Пример с положительным целым числом:

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

Пример с дробным числом:

console.log(Math.sqrt(2.25));
1.5

Пример с нулем:

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

Пример с отрицательным числом:

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

Пример с неявным преобразованием строки:

console.log(Math.sqrt('16'));
4

Пример с некорректным преобразованием:

console.log(Math.sqrt('текст'));
NaN

Похожие функции в JavaScript

В JavaScript существуют другие математические функции для работы со степенями и корнями:

  • Math.pow(x, y) — возвращает x в степени y. Для извлечения квадратного корня можно использовать Math.pow(x, 0.5), что функционально идентично Math.sqrt(x).
  • Math.cbrt(x) — вычисляет кубический корень из числа, доступен с ES6.
  • Math.hypot([x[, y[, …]]]) — возвращает квадратный корень из суммы квадратов аргументов (евклидову норму).

Функцию Math.sqrt() предпочтительно использовать для прямого вычисления квадратного корня из-за её читаемости и оптимизации. Math.pow() применяют для возведения в произвольную степень, а Math.cbrt() — для кубического корня.

Аналоги функции в других языках программирования

PHP: функция sqrt() работает аналогично, но при передаче отрицательного числа возвращает NAN.

echo sqrt(9);
3

Python: модуль math предоставляет функцию sqrt(), которая для отрицательных чисел вызывает ошибку ValueError (или возвращает комплексное число, если используется cmath.sqrt).

import math
print(math.sqrt(9))
3.0

MySQL: функция SQRT() возвращает NULL для отрицательных аргументов.

SELECT SQRT(9);
3

C/C++: функция sqrt() из библиотеки math.h (cmath в C++) возвращает double. Для отрицательных чисел может возвращать NaN или вызывать исключение в зависимости от реализации.

#include <math.h>
double result = sqrt(9.0);
3.0

Основное отличие JavaScript-реализации — универсальное возвращение NaN для отрицательных аргументов и нечисловых значений.

Распространенные ошибки при использовании Math.sqrt()

Ожидание числового результата для отрицательных аргументов:

let result = Math.sqrt(-4);
console.log(result * 2);
NaN

Попытка использовать результат NaN в дальнейших вычислениях без проверки.

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

console.log(Math.sqrt(undefined));
NaN

Использование функции без учета того, что она возвращает только один квадратный корень (неотрицательный):

let x = 9;
let roots = [Math.sqrt(x), -Math.sqrt(x)]; // Получение обоих корней
console.log(roots);
[3, -3]

Некорректная обработка строковых аргументов, которые могут содержать числа:

console.log(Math.sqrt('4a'));
NaN

Изменения в функции Math.sqrt()

Функция Math.sqrt() не претерпела значительных изменений в последних версиях JavaScript (ECMAScript). Она остается стабильной и соответствует стандарту IEEE 754. Спецификация ES5 и ES6 не вносили изменений в её поведение. Все современные браузеры и среды выполнения поддерживают эту функцию в её классическом виде.

Расширенные примеры применения Math.sqrt()

Вычисление гипотенузы прямоугольного треугольника:

Пример javascript
let a = 3, b = 4;
let hypotenuse = Math.sqrt(a * a + b * b);
console.log(hypotenuse);
5

Решение квадратного уравнения:

Пример javascript
let a = 1, b = -5, c = 6;
let discriminant = b * b - 4 * a * c;
if (discriminant >= 0) {
    let x1 = (-b + Math.sqrt(discriminant)) / (2 * a);
    let x2 = (-b - Math.sqrt(discriminant)) / (2 * a);
    console.log(x1, x2);
} else {
    console.log('Действительных корней нет');
}
3 2

Проверка, является ли число целым квадратом:

Пример javascript
function isPerfectSquare(num) {
    return Math.sqrt(num) % 1 === 0;
}
console.log(isPerfectSquare(25));
console.log(isPerfectSquare(30));
true
false

Нормализация вектора:

Пример javascript
let vector = [3, 4];
let length = Math.sqrt(vector[0] ** 2 + vector[1] ** 2);
let normalized = vector.map(component => component / length);
console.log(normalized);
[0.6, 0.8]

Использование в анимации для плавного движения:

Пример javascript
// Затухающее движение с квадратным корнем для easing
function easeOutSqrt(t) {
    return 1 - Math.sqrt(1 - t * t);
}
console.log(easeOutSqrt(0.5).toFixed(3));
0.134

Вычисление среднеквадратичного отклонения:

Пример javascript
let data = [2, 4, 4, 4, 5, 5, 7, 9];
let mean = data.reduce((a, b) => a + b) / data.length;
let squareDiffs = data.map(value => Math.pow(value - mean, 2));
let stdDev = Math.sqrt(squareDiffs.reduce((a, b) => a + b) / data.length);
console.log(stdDev.toFixed(2));
2.00

JS sqrt function comments

En
Sqrt Returns the square root of a number