js 实现sqrt
实现平方根的 JavaScript 方法
使用 Math.sqrt()
JavaScript 内置了 Math.sqrt() 方法,可直接计算平方根:
const result = Math.sqrt(9); // 返回 3
二分查找法
对于不依赖内置方法的实现,可通过二分查找逼近平方根值:
function sqrt(x) {
if (x < 0) return NaN;
if (x === 0 || x === 1) return x;
let low = 0;
let high = x;
let precision = 0.00001;
let mid;
while (high - low > precision) {
mid = (low + high) / 2;
if (mid * mid > x) {
high = mid;
} else {
low = mid;
}
}
return (low + high) / 2;
}
牛顿迭代法
更高效的数值计算方法,通过迭代公式快速逼近结果:
function sqrtNewton(x) {
if (x < 0) return NaN;
let guess = x / 2;
const precision = 0.00001;
while (Math.abs(guess * guess - x) > precision) {
guess = (guess + x / guess) / 2;
}
return guess;
}
性能比较
Math.sqrt()是原生实现,速度最快- 牛顿迭代法通常比二分查找收敛更快
- 自定义实现适合理解算法原理或特殊需求场景
注意事项
- 处理负数输入返回
NaN - 设定合理的精度阈值避免无限循环
- 对极大/极小数值需考虑浮点数精度问题







