当前位置:首页 > JavaScript

js 实现sqrt

2026-02-01 02:54:45JavaScript

实现平方根的 JavaScript 方法

使用 Math.sqrt()

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

js 实现sqrt

const result = Math.sqrt(9); // 返回 3

二分查找法

对于不依赖内置方法的实现,可通过二分查找逼近平方根值:

js 实现sqrt

function sqrt(x) {
    if (x < 0) return NaN;
    if (x === 0 || x === 1) return x;

    let low = 0;
    let high = x;
    let precision = 0.00001;
    let mid;

    while (high - low > precision) {
        mid = (low + high) / 2;
        if (mid * mid > x) {
            high = mid;
        } else {
            low = mid;
        }
    }
    return (low + high) / 2;
}

牛顿迭代法

更高效的数值计算方法,通过迭代公式快速逼近结果:

function sqrtNewton(x) {
    if (x < 0) return NaN;
    let guess = x / 2;
    const precision = 0.00001;

    while (Math.abs(guess * guess - x) > precision) {
        guess = (guess + x / guess) / 2;
    }
    return guess;
}

性能比较

  • Math.sqrt() 是原生实现,速度最快
  • 牛顿迭代法通常比二分查找收敛更快
  • 自定义实现适合理解算法原理或特殊需求场景

注意事项

  • 处理负数输入返回 NaN
  • 设定合理的精度阈值避免无限循环
  • 对极大/极小数值需考虑浮点数精度问题

标签: jssqrt
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…