首页
学习
活动
专区
工具
TVP
发布

JavaScript用Math.asin方法求反正弦值

1. 基本概念

Math.asin()方法用于求一个数的反正弦值。它的语法形式如下所示:

Math.asin(x);

其中参数x应该是一个数字,即它的类型应该是Number。如果x不是Number类型的,那么它会先被强制类型转换为Number类型。

参数x代表的是某个角的正弦值,而Math.asin()方法返回的正是用弧度值表示的这个角。x应该处于 [-1, 1] 范围内,因为正弦值的取值范围是 [-1, 1]。

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

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

2. 如果x大于1(包括正无穷Infinity),那么结果是NaN;

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

4. 如果x是+0,那么结果是+0;

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

6. x为其它 [-1, 1] 范围内的数字,结果是正弦值等于x的角的弧度值。

我们知道正弦函数是一个周期函数,即有多个角的正弦值是相同的。那么当我们指定一个正弦值的时候,Math.asin()方法会返回哪一个角呢?对此官方文档作了明确的规定,那就是Math.asin()方法返回的是 [-π / 2, π / 2] 范围内的角。

2. 示例

2.1 参数为[-1, 1]内的数字

因为Math.asin()方法的参数的合法范围是 [-1, 1] ,所以我们先来看看参数正确的情况下Math.asin()方法的作用。虽然+0和-0也是这一范围内的数字,但这里我们先不考虑它们,而是把它们留到第3个例子中。本示例的执行结果如图1所示。

图1 参数在[-1, 1]内的情况

2.2 参数为[-1, 1]外的数字

我们再来看看参数在 [-1, 1] 范围之外时,Math.asin()的返回值。同样的,这里我们先不考虑正无穷和负无穷(Infinity和-Infinity)而是将它们留到示例3中进行展示。下面代码的执行结果如图2所示。

图2 参数在[-1, 1]外的情况

2.3 参数为特殊数字

JavaScript中有几个特殊的数字,它们分别是+0、-0、Infinity、-Infinity和NaN。本示例演示的就是以这些特殊数字为参数而调用Math.asin()方法的效果,它们的执行结果如图3所示。

注意在该示例中,我们用单独的一条打印语句来打印参数为-0的结果。这是因为如果用同一条打印语句来同时打印提示字符串和结果值,那么结果值-0在转换成字符串后就变成了0(+0),打印出的信息会错误地显示-0的反正弦值为0(+0)。

同样的,我们也用单独的一条打印语句来打印参数为+0的结果。这是为了说明Math.asin(+0)的结果确实为+0(0),而不是-0转换为字符串而得来的。

图3 参数为特殊数字的情况

2.4 参数不为数字

最后,我们再来看看Math.asin()的参数不是Number类型的情形。此时参数会先被转换为Number类型,再对该数字求反正弦值,该示例的执行结果如图4所示。

在该示例中,我们同样单独的打印参数为null的结果。这么做的原因也是为了说明Math.asin(null)的结果确实是+0(0),而不是-0转换为字符串而得来的。

图4 参数不是数字的情况

(完)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200420A0S2KF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券