js函数实现开平方
在JavaScript中实现开平方可以通过多种方法完成,以下是几种常见的实现方式:
使用Math.sqrt()
JavaScript内置的Math.sqrt()方法是最直接的方式,返回一个数的平方根:
function squareRoot(num) {
return Math.sqrt(num);
}
console.log(squareRoot(16)); // 输出: 4
牛顿迭代法
牛顿迭代法是一种数值计算近似解的方法,适用于手动实现平方根算法:
function newtonSqrt(num, precision = 0.0001) {
let guess = num / 2;
while (Math.abs(guess * guess - num) > precision) {
guess = (guess + num / guess) / 2;
}
return guess;
}
console.log(newtonSqrt(16)); // 输出: ~4.000000
二分查找法
通过二分查找逼近平方根的值,适合对精度要求可控的场景:
function binarySearchSqrt(num, precision = 0.0001) {
let low = 0, high = num;
let mid;
while (high - low > precision) {
mid = (low + high) / 2;
if (mid * mid > num) {
high = mid;
} else {
low = mid;
}
}
return mid;
}
console.log(binarySearchSqrt(16)); // 输出: ~4.000000
指数运算
利用指数与对数的数学关系实现,但可能受浮点数精度限制:
function expSqrt(num) {
return Math.pow(num, 0.5);
}
console.log(expSqrt(16)); // 输出: 4
注意事项
- 输入负数时,
Math.sqrt()返回NaN,其他方法需额外处理。 - 牛顿迭代法和二分查找法需设置合理的精度阈值以避免无限循环。
- 性能敏感场景优先使用内置的
Math.sqrt()。







