当前位置:首页 > JavaScript

js函数实现开平方

2026-04-04 21:22:14JavaScript

实现开平方的 JavaScript 函数

使用 Math.sqrt()

JavaScript 内置的 Math.sqrt() 方法可以直接计算一个数的平方根:

function squareRoot(num) {
    return Math.sqrt(num);
}
console.log(squareRoot(16)); // 输出 4

牛顿迭代法

牛顿迭代法是一种数值计算方法,可以用于近似求解平方根:

function squareRootNewton(num, precision = 0.0001) {
    if (num < 0) return NaN;
    let guess = num;
    while (Math.abs(guess * guess - num) > precision) {
        guess = (guess + num / guess) / 2;
    }
    return guess;
}
console.log(squareRootNewton(16)); // 输出近似 4

二分查找法

二分查找法可以在一定精度范围内逼近平方根:

function squareRootBinary(num, precision = 0.0001) {
    if (num < 0) return NaN;
    let low = 0;
    let high = num;
    let mid = (low + high) / 2;
    while (Math.abs(mid * mid - num) > precision) {
        if (mid * mid > num) {
            high = mid;
        } else {
            low = mid;
        }
        mid = (low + high) / 2;
    }
    return mid;
}
console.log(squareRootBinary(16)); // 输出近似 4

指数运算

利用指数运算的性质,平方根可以通过 Math.pow() 实现:

js函数实现开平方

function squareRootPow(num) {
    return Math.pow(num, 0.5);
}
console.log(squareRootPow(16)); // 输出 4

注意事项

  • 输入为负数时,应返回 NaN 或抛出错误。
  • 牛顿迭代法和二分查找法需要设置合理的精度以避免无限循环。
  • 内置方法 Math.sqrt() 通常是性能最优的选择。

标签: 开平函数
分享给朋友:

相关文章

vue实现递归函数

vue实现递归函数

Vue 中实现递归函数的方法 在 Vue 中实现递归函数通常用于处理树形结构数据、嵌套组件或递归算法。以下是几种常见实现方式: 递归组件实现 Vue 允许组件在其模板中调用自身,通过 name 选项…

react函数如何调用redux

react函数如何调用redux

在React函数组件中调用Redux 使用react-redux库提供的useSelector和useDispatch钩子函数,可以在函数组件中访问Redux状态和派发action。 安装必要依赖:…

react如何定义全局函数

react如何定义全局函数

定义全局函数的几种方法 在React中定义全局函数可以通过多种方式实现,以下是常见的几种方法: 使用全局变量挂载 将函数直接挂载到window对象上,使其成为全局可访问的函数。这种方式简单直接,但…

react如何刷新函数组件

react如何刷新函数组件

刷新函数组件的方法 在React中,函数组件的刷新通常通过状态更新或外部触发来实现。以下是几种常见的方法: 使用useState触发重新渲染 通过更新状态变量强制组件重新渲染。React会在状态变化…

react如何控制函数组件更新

react如何控制函数组件更新

控制函数组件更新的方法 在React中,函数组件的更新通常由状态(state)或属性(props)的变化触发。以下是几种常见的控制函数组件更新的方法: 使用React.memo进行浅比较 React…

react类函数中如何获取到props

react类函数中如何获取到props

在React类组件中获取props可以通过以下几种方式实现: 通过构造函数获取 在类组件的构造函数中,props会作为第一个参数传入。可以通过super(props)调用父类构造函数,并将props…