js实现开平方根
实现开平方根的几种方法
使用 Math.sqrt()
JavaScript 内置的 Math.sqrt() 方法可以直接计算平方根,这是最简单高效的方式。

const number = 16;
const squareRoot = Math.sqrt(number);
console.log(squareRoot); // 输出: 4
牛顿迭代法
牛顿迭代法是一种数值逼近方法,通过迭代逐步逼近平方根的精确值。适用于需要自定义实现的情况。

function sqrtNewton(num, precision = 0.0001) {
let guess = num / 2;
while (Math.abs(guess * guess - num) > precision) {
guess = (guess + num / guess) / 2;
}
return guess;
}
console.log(sqrtNewton(16)); // 输出接近 4
二分查找法
通过二分查找在范围内逼近平方根的值,适合理解算法原理的场景。
function sqrtBinarySearch(num, precision = 0.0001) {
let low = 0;
let high = num;
let mid;
while (high - low > precision) {
mid = (low + high) / 2;
if (mid * mid > num) {
high = mid;
} else {
low = mid;
}
}
return (low + high) / 2;
}
console.log(sqrtBinarySearch(16)); // 输出接近 4
指数运算符
利用数学公式 √x = x^(1/2),通过指数运算符计算。
const number = 16;
const squareRoot = number 0.5;
console.log(squareRoot); // 输出: 4
性能比较
Math.sqrt()是原生方法,性能最优,推荐优先使用。- 牛顿迭代法和二分查找法适用于学习或特殊需求(如高精度定制)。
- 指数运算符简洁,但兼容性需注意(ES6+支持)。
选择方法时根据实际需求权衡效率与实现复杂度。

