首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaScript用Math.tan方法计算正切值

 1. 基本概念

如果要求一个角的正切值,那么可以使用Math.tan()方法;它的语法结构就像下面这样:

Math.tan(x);

要注意的有两点,一是该参数x代表的是一个角的弧度值而不是角度值。二是如果参数x不是一个数字(即Number类型),那么它会先被自动转换为数字。

由于JavaScript的数字类型包含几个特殊的值,所以Math.tan()方法的详细结果由如下规则决定。如果x原本不是数字,那么下面这些规则中提到的x的值指的均是它被转换为数字后的值。

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

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

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

4. 如果x是正无穷(+Infinity)或负无穷(-Infinity),那么结果将是NaN;

5. 其余情况下,结果是x所代表的弧度值的正切值。

正切函数的图像如图1所示,根据该图像可以更好地理解以上这些规则的原理。

图1 正切函数的图像

2. 示例

2.1 参数为普通数字

首先,让我们先考察一下参数为普通数字的情况,它对应上面的第5条规则,这也是我们大多数时候使用Math.tan()的情况;此时的执行结果如图2所示。

该例子中有两点需要注意,第一是在JavaScript中我们无法精确表示圆周率π,Math.PI也仅仅是它的近似表示而已。所以当我们指定参数为Math.PI/6、Math.PI、Math.PI/4的时候,得到的结果也是参数为π/6、π、π/4的理论值的近似值。

比如,在数学上tan(π/4)等于1,但Math.tan(Math.PI / 4)的结果却是0.999999...,这样的近似值精度还算比较高,在一般情况下是满足我们的需求的。

第二,正切函数的定义域为,也就是参数x不能为(π/2)+kπ,k∈Z。可是在下面的代码中当我们指定参数为Math.PI/2和(3/2)*Math.PI时,Math.tan()方法不但没有出错反而还产生了数值很大的结果,这同样是因为我们无法精确地表示圆周率π。Math.PI/2和(3/2)*Math.PI也仅仅是π/2和3π/2的近似值,而非精确值。

图2 参数为普通数字时的执行结果

2.2 参数为特殊数字

之后,我们再来看看参数为NaN、+0、-0、+Infinity和-Infinity这5个特殊数字时的情况,此时对应上面的第1至第4条规则;它们的执行结果如图3所示。

这里要注意的是,在JavaScript中显示正数的时候通常不显示它的正号;所以,当我们打印值为+0的结果时(图3中的第二个打印结果),你看到的显示结果为0。

图3 参数为特殊数字时的执行结果

2.3 参数不为数字

最后,再让我们来看看参数不是数字的情况;此时,参数会先被自动转换为数字,再对该弧度值求其正切值。下面的代码的执行结果如图4所示。

图4 参数不是数字时的执行结果

(完)

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券