当前位置:首页 > JavaScript

js实现sqrt

2026-02-02 00:34:10JavaScript

实现平方根的 JavaScript 方法

在 JavaScript 中实现平方根计算可以通过多种方法,包括内置函数、数学算法近似等。以下是几种常见的实现方式:

使用 Math.sqrt() 内置函数

JavaScript 提供了内置的 Math.sqrt() 方法,可以直接计算平方根:

js实现sqrt

const sqrt = Math.sqrt(16); // 返回 4

二分查找法

对于需要手动实现的情况,二分查找是一种高效的方法:

js实现sqrt

function sqrtBinarySearch(n, precision = 0.00001) {
    let low = 0, high = n;
    let mid = (low + high) / 2;
    while (Math.abs(mid * mid - n) > precision) {
        if (mid * mid > n) {
            high = mid;
        } else {
            low = mid;
        }
        mid = (low + high) / 2;
    }
    return mid;
}

牛顿迭代法

牛顿迭代法(Newton-Raphson)是一种快速收敛的算法:

function sqrtNewton(n, precision = 0.00001) {
    let x = n;
    while (Math.abs(x * x - n) > precision) {
        x = (x + n / x) / 2;
    }
    return x;
}

指数对数法

利用数学恒等式 √x = e^(0.5 * ln(x))

function sqrtLogExp(n) {
    return Math.exp(0.5 * Math.log(n));
}

注意事项

  • 内置函数 Math.sqrt() 性能最优,推荐优先使用。
  • 手动实现时需处理非数值输入(如字符串)和负数(返回 NaN)。
  • 牛顿迭代法通常比二分查找更快收敛。

边界情况处理

function safeSqrt(n) {
    if (typeof n !== 'number' || isNaN(n)) return NaN;
    if (n < 0) return NaN;
    return Math.sqrt(n);
}

标签: jssqrt
分享给朋友:

相关文章

js 实现vue

js 实现vue

实现 Vue 的核心功能 在 JavaScript 中实现 Vue 的核心功能需要模拟数据绑定、虚拟 DOM 和响应式系统。以下是一个简化版的实现思路: 响应式系统 通过 Object.define…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <htm…

js实现弹框

js实现弹框

使用 alert 实现简单弹框 JavaScript 的 alert 方法可以直接显示一个简单的弹框,内容为纯文本: alert("这是一个简单的弹框"); 使用 confirm 实现确认弹框…