js实现sqrt
JavaScript 实现平方根的方法
在 JavaScript 中实现平方根计算有多种方法,包括使用内置函数、数学近似算法或迭代法。以下是几种常见的实现方式:
使用 Math.sqrt()
JavaScript 提供了内置的 Math.sqrt() 方法,可以直接计算平方根:
const sqrt = Math.sqrt(16); // 返回 4
二分查找法实现平方根
通过二分查找法可以手动实现平方根计算,适用于需要自定义精度或理解算法原理的场景:
function sqrtBinarySearch(x, precision = 0.00001) {
if (x < 0) return NaN;
let low = 0;
let high = x;
let mid = (low + high) / 2;
while (Math.abs(mid * mid - x) > precision) {
if (mid * mid > x) {
high = mid;
} else {
low = mid;
}
mid = (low + high) / 2;
}
return mid;
}
牛顿迭代法实现平方根
牛顿迭代法是一种高效的平方根近似算法,收敛速度快:
function sqrtNewton(x, precision = 0.00001) {
if (x < 0) return NaN;
let guess = x / 2;
while (Math.abs(guess * guess - x) > precision) {
guess = (guess + x / guess) / 2;
}
return guess;
}
指数运算实现平方根
利用指数和对数的数学性质,可以通过以下方式计算平方根:

function sqrtExp(x) {
return Math.exp(Math.log(x) / 2);
}
性能比较与选择
Math.sqrt()是最简单且性能最优的方法,推荐优先使用。- 二分查找法和牛顿迭代法适用于需要自定义实现或学习算法的场景。
- 指数运算方法可能因浮点数精度问题导致结果不精确,不推荐生产环境使用。
注意事项
- 输入为负数时,应返回
NaN或抛出错误。 - 自定义实现时需注意精度控制,避免无限循环。
- 对于大数运算,需考虑 JavaScript 的数字精度限制。






