当前位置:首页 > 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() 通常是性能最优的选择。

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

相关文章

react如何调用函数

react如何调用函数

React 函数调用的方法 在 React 中调用函数可以通过多种方式实现,具体取决于函数的作用和调用时机。以下是常见的几种方法: 直接在组件中调用函数 函数可以在组件的 render 方法或其他…

react函数组件如何更新

react函数组件如何更新

React 函数组件更新方法 使用 useState Hook 通过 useState Hook 可以定义组件的状态,并触发重新渲染。useState 返回一个状态值和一个更新状态的函数。调用更新函数…

react高阶函数如何写

react高阶函数如何写

高阶函数的基本概念 高阶函数(Higher-Order Function)是指接收函数作为参数或返回函数的函数。在React中,高阶函数常用于逻辑复用、组件增强或事件处理封装。 接收函数作为参数…

react如何阻止函数组件更新

react如何阻止函数组件更新

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

react函数组件如何强制刷新

react函数组件如何强制刷新

强制刷新React函数组件的方法 在React函数组件中,强制刷新通常不推荐直接操作,因为React的设计理念是基于状态和props的自动更新。但在某些特殊情况下,可能需要手动触发更新。以下是几种常见…

react如何调用子组件的函数

react如何调用子组件的函数

调用子组件函数的常见方法 使用 ref 直接调用 通过 React.createRef() 或 useRef 创建引用,附加到子组件上。子组件需用 forwardRef 暴露内部方法,类组件则直接通过…