JavaScript用Math.sqrt求平方根(JavaScript用Math.sqrt求平方根)

JavaScript用Math.sqrt求平方根(JavaScript用Math.sqrt求平方根)(1)

1. 基本概念

Math.sqrt()方法的名字sqrt是"square root"的缩写,它代表的正是平方根。因此,Math.sqrt()方法的作用就是用来求一个数的平方根。它的语法结构如下所示:

Math.sqrt(x);

参数x应该是一个数字,即它的类型应该是Number。如果x不是Number类型的,那么它会先被强制类型转换为Number类型。在数学上要计算一个数的平方根,那么这个数就不能为负数。Math.sqrt()同样要求它的参数不能为负数,但有一个例外,那就是-0;在JavaScript中,-0的平方根就是-0本身。

Math.sqrt()方法的返回值由下面的规则决定,规则中x的值指的是x被转换为Number类型后的值,如果它原本不是Number类型的话。

1. 如果x是NaN,那么结果也是NaN;

2. 如果x是 0,那么结果也是 0;

3. 如果x是-0,那么结果也是-0;

4. 如果x是正无穷(Infinity),那么结果也是正无穷(Infinity);

5. 如果x小于0(包括负无穷,-Infinity),那么结果就是NaN;

6. x为其它大于0的数字,结果为x的平方根。

2. 示例

2.1 参数为正数

我们先来看看用正数调用Math.sqrt()的结果,这也正是我们最常使用Math.sqrt()方法的情况,以下代码的执行结果如图1所示。

<script> var value1 = Math.sqrt(25); console.log("Math.sqrt(25) = " value1); var value2 = Math.sqrt(3); console.log("Math.sqrt(3) = " value2); var value3 = Math.sqrt(4); console.log("Math.sqrt(4) = " value3); </script>

JavaScript用Math.sqrt求平方根(JavaScript用Math.sqrt求平方根)(2)

图1 参数为正数的情况

2.2 参数为特殊值和负数

我们再来看看参数为特殊值和负数的场景,以下代码的执行结果如图2所示。注意在该示例中,我们用单独的一条打印语句来打印-0的平方根。这是因为如果用同一条打印语句来同时打印提示字符串和结果值,那么-0在转换成字符串后就变成0了,打印出的结果会错误地显示-0的平方根为0。

<script> var value1 = Math.sqrt(NaN); console.log("Math.sqrt(NaN) = " value1); var value2 = Math.sqrt( 0); console.log("Math.sqrt( 0) = " value2); var value3 = Math.sqrt(-0); console.log("Math.sqrt(-0)的结果在下面一行单独打印:"); console.log(value3); var value4 = Math.sqrt(Infinity); console.log("Math.sqrt(Infinity) = " value4); var value5 = Math.sqrt(-Infinity); console.log("Math.sqrt(-Infinity) = " value5); var value6 = Math.sqrt(-9); console.log("Math.sqrt(-9) = " value6); </script>

JavaScript用Math.sqrt求平方根(JavaScript用Math.sqrt求平方根)(3)

图2 参数为特殊值和负数的情况

2.3 参数不是数字

最后,我们再来看看参数不是Number类型的情形,此时参数会先被转换为Number类型。

<script> /* 字符串"16"转换成数字为16 */ var value1 = Math.sqrt("16"); console.log('Math.sqrt("16") = ' value1); /* null转化成数字为0( 0) */ var value2 = Math.sqrt(null); console.log("Math.sqrt(null) = " value2); /* 布尔值true转换成数字为1 */ var value3 = Math.sqrt(true); console.log("Math.sqrt(true) = " value3); /* window对象转换成数字为NaN */ var value4 = Math.sqrt(window); console.log("Math.sqrt(window) = " value4); </script>

JavaScript用Math.sqrt求平方根(JavaScript用Math.sqrt求平方根)(4)

图3 参数需要类型转换的情况

(完)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页