当前位置:首页 > JavaScript

js实现sqrt

2026-03-15 00:00:08JavaScript

JavaScript 实现平方根(sqrt)

在 JavaScript 中,实现平方根可以通过以下几种方法:

使用内置 Math.sqrt 方法

JavaScript 提供了内置的 Math.sqrt 方法,可以直接计算平方根。这是最简单且高效的方式。

js实现sqrt

const number = 16;
const sqrt = Math.sqrt(number);
console.log(sqrt); // 输出 4

使用指数运算符

平方根也可以通过指数运算符实现,即将数值的 0.5 次方。

js实现sqrt

const number = 16;
const sqrt = number  0.5;
console.log(sqrt); // 输出 4

手动实现二分法

如果需要手动实现平方根算法,可以使用二分法逼近平方根的值。

function sqrtManual(number, precision = 0.0001) {
    if (number < 0) {
        return NaN; // 负数没有实数平方根
    }
    let low = 0;
    let high = number;
    let mid = (low + high) / 2;
    while (Math.abs(mid * mid - number) > precision) {
        if (mid * mid > number) {
            high = mid;
        } else {
            low = mid;
        }
        mid = (low + high) / 2;
    }
    return mid;
}

console.log(sqrtManual(16)); // 输出接近 4

牛顿迭代法

牛顿迭代法是一种更高效的数值逼近方法,适用于计算平方根。

function sqrtNewton(number, precision = 0.0001) {
    if (number < 0) {
        return NaN;
    }
    let guess = number / 2;
    while (Math.abs(guess * guess - number) > precision) {
        guess = (guess + number / guess) / 2;
    }
    return guess;
}

console.log(sqrtNewton(16)); // 输出接近 4

性能比较

  • Math.sqrt 是原生方法,性能最优。
  • 手动实现的二分法和牛顿迭代法适用于学习或特殊需求场景,但性能不如原生方法。

选择哪种方法取决于具体需求,推荐优先使用 Math.sqrt

标签: jssqrt
分享给朋友:

相关文章

js实现跳转

js实现跳转

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

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似: func…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…