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()
Вычисление гипотенузы прямоугольного треугольника:
let a = 3, b = 4;
let hypotenuse = Math.sqrt(a * a + b * b);
console.log(hypotenuse);5
Решение квадратного уравнения:
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
Проверка, является ли число целым квадратом:
function isPerfectSquare(num) {
return Math.sqrt(num) % 1 === 0;
}
console.log(isPerfectSquare(25));
console.log(isPerfectSquare(30));true false
Нормализация вектора:
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]
Использование в анимации для плавного движения:
// Затухающее движение с квадратным корнем для easing
function easeOutSqrt(t) {
return 1 - Math.sqrt(1 - t * t);
}
console.log(easeOutSqrt(0.5).toFixed(3));0.134
Вычисление среднеквадратичного отклонения:
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