js实现sqrt
实现平方根的 JavaScript 方法
在 JavaScript 中实现平方根计算可以通过多种方法,包括内置函数、数学算法近似等。以下是几种常见的实现方式:
使用 Math.sqrt() 内置函数
JavaScript 提供了内置的 Math.sqrt() 方法,可以直接计算平方根:
const sqrt = Math.sqrt(16); // 返回 4
二分查找法
对于需要手动实现的情况,二分查找是一种高效的方法:
function sqrtBinarySearch(n, precision = 0.00001) {
let low = 0, high = n;
let mid = (low + high) / 2;
while (Math.abs(mid * mid - n) > precision) {
if (mid * mid > n) {
high = mid;
} else {
low = mid;
}
mid = (low + high) / 2;
}
return mid;
}
牛顿迭代法
牛顿迭代法(Newton-Raphson)是一种快速收敛的算法:
function sqrtNewton(n, precision = 0.00001) {
let x = n;
while (Math.abs(x * x - n) > precision) {
x = (x + n / x) / 2;
}
return x;
}
指数对数法
利用数学恒等式 √x = e^(0.5 * ln(x)):
function sqrtLogExp(n) {
return Math.exp(0.5 * Math.log(n));
}
注意事项
- 内置函数
Math.sqrt()性能最优,推荐优先使用。 - 手动实现时需处理非数值输入(如字符串)和负数(返回
NaN)。 - 牛顿迭代法通常比二分查找更快收敛。
边界情况处理
function safeSqrt(n) {
if (typeof n !== 'number' || isNaN(n)) return NaN;
if (n < 0) return NaN;
return Math.sqrt(n);
}






