JavaScript用Math.tan()計算正切值

2020-12-12 青石野草

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|x≠(π/2)+kπ,k∈Z},也就是參數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 參數不是數字時的執行結果

(完)

相關焦點

  • JavaScript用Math.tan方法計算正切值
    基本概念 如果要求一個角的正切值,那麼可以使用Math.tan()方法;它的語法結構就像下面這樣: Math.tan(x); 要注意的有兩點,一是該參數x代表的是一個角的弧度值而不是角度值。
  • tan30度等於多少根號 tan30°保留根號
    tan30度等於3分之根號3,tan在數學函數中代表正切值,則tan∠1=a:b。tan是正切函數是直角三角形中,對邊與鄰邊的比值,放在直角坐標系中即 tanθ=y/x。  tan的各個特殊值  0度角:tan0°=0,arctan0=0°  30度角:tan30°=√du3/3,arctan(√3/3)=30°
  • 如何使用python語言中的math包計算表達式
    問題背景1、打開pycharm工具,新建python文件,導入math新建python文件,導入math2、調用input函數,提示用戶輸入三個數字
  • tan3°顯然是無理數,但如何證明呢?統哥教你反證法輕鬆搞定!
    插圖我們可以假設tan3°是有理數,那麼tan6°就是有理數。大家可以把6°看成3°的兩倍,用二倍角公式就能計算tan6°,對吧?因為tan3°是有理數,那經過二倍角公式計算後的結果肯定也是有理數,所以tan6°就是有理數。於是,tan9°也是有理數,對吧?各位讀者想想為什麼呢?這裡就用到了和角公式,9°等於6°加3°嘛!那麼同樣道理,tan15°也是有理數吧!
  • 第一篇:JavaScript基本語法
    在瀏覽器打開保存的HTML網頁文件,瀏覽器會顯示下圖所示的內容:在用戶名和登錄密碼輸入域隨意輸入內容,然後用滑鼠單擊【驗證】按鈕,瀏覽器會彈出對話框,顯示最近輸入的用戶名的名稱。<script>標籤的type屬性表示腳本語言是javascript。<script>標籤可放置在HTML 頁面的<body>或者<head>標籤內。
  • 初三三角函數計算試題與答案
    AC的長,則下列按鍵順序正確的是(  )A.5÷tan26=     B.5÷sin26=C.5×cos26=     D.5×tan26=二、填空題4.用科學計算器計算13××sin 14°≈    .
  • JavaScript求絕對值:Math.abs()方法
    基本概念Math對象的abs()方法用於計算一個數的絕對值,abs是單詞"absolute"的縮寫,而單詞"absolute"有「絕對的」的意思。因此,求絕對值方法被命名為abs。
  • tan120度等於多少分數 tan120度的值是多少
    tan120度=sin120度/cos120度=-sin(180-120)度/cos(180-120)度=-sin60度/cos60度=-(√3/2)/(1/2)=-√3。tan是正切函數是直角三角形中,對邊與鄰邊的比值,放在直角坐標系中即 tanθ=y/x。
  • 如何用不到 2KB 的 JavaScript 代碼寫一個 3D 賽車遊戲?
    一是賽車遊戲,包括懷舊向的80年代賽車遊戲,他們在非常早期的硬體上推動實時 3D 圖形,所以作者沿用了相同的技術,用純 JavaScript 從頭開始實現做 3D 圖形和物理引擎;還有一些現代賽車遊戲帶來了視覺設計的靈感,比如《Distance》和《Lonely Mountains: Downhill》;二是之前 Jake Gordon 用 JavaScript 創建一個虛擬3D賽車的項目,並分享了代碼
  • javaScript Math常用方法
  • JavaScript的內置對象Math
  • 計算公式各有什麼不同?
    坡比,即坡面的垂直高度h和水平寬度l的比,即坡角的正切值 (tan∠a值∠a為斜坡與水平面夾角)。「亦即tan∠α」。通常用「i」表示。坡比計算公式:tana=i(坡度)a表示坡角二、什麼是坡度?坡度(slope)是地表單元陡緩的程度,通常把坡面的垂直高度h和水平距離l的比叫做坡度(或叫做坡比)用字母i表示。
  • 數學是math還是maths?美式英語和英式英語的區別,但為什麼呢?
    說英語的北美人用的詞是「math」,如:Tim's good at math and science.蒂姆擅長數學和科學。The math teacher always calls on the boys.
  • 初識javascript,JS的歷史_騰訊新聞
    javascript和H5的關關係 什麼是HTML5? javascript的應用範圍 1.PC端web開發(網站) 2.移動端開發(webApp、混合App)服務端開發(NodeJs) 3.遊戲開發(unity3D-TypeScript,網頁遊戲)在線演示:忍者水果
  • javascript入門到進階-js系列六:執行上下文
    javascript代碼在執行時,會進入一個執行上下文中,執行上下文可以理解為當前代碼的運行環境。 所以在一個javascript程序中,必定會出現多種不同的執行上下文。javascript是一個單線程語言,這意味著在瀏覽器中同時只能做一件事情。當javascript解釋器初始執行代碼,它首先默認進入全局上下文。每次調用一個函數將會創建一個新的執行上下文。每次新創建的一個執行上下文會被添加到作用域鏈的頂部,有時也稱為執行或調用棧。
  • 如何在javascript中創建一個對象?
    javascript是一門基於對象而不是面向對象的語言,由於它的這個缺陷,在javascript中實現面向對象時十分彆扭,就比如創建對象,由於在ES6之前沒有class關鍵字,想要創建對象必須依賴以下幾種間接方式。
  • 8 Easy Ideas to Add Math Into Your Daily Routine
    Could I infuse math into our daily routine in the same way I sometimes sneak vegetables into their meals?孩子們對大人試圖要教授或改變的事情很敏感。回想我小孩兩歲的時候,有次當我想幫忙並提示她,當她從一數到十的時漏掉了一些數字,她說「不,我自己做!」那是她最喜歡說的一句話。
  • 焊縫尺寸計算公式,建議收藏!
    (2)帶鈍邊V形對接焊縫寬度經驗計算公式如下圖所示帶鈍邊V形坡口焊縫,坡口角度為α,間隙為b,鈍邊為P,根據解三角形的方法: 焊縫寬度C=AB+CD+b+2e=2(δ-P)tan(α/2)+b+2e≈δ+3     ⑵式中e——坡口兩邊焊縫覆蓋寬度
  • 什麼是javascript?javascript需要學哪些內容?這篇文章告訴你!
    內存中堆區和棧區4.1.1 單獨聲明4.1.2 多個變量聲明,中間用逗號隔開4.1.3 重複聲明剩餘可以是任意字母,美元符號,下劃線和數字(3)不能使用javascript中的關鍵字(保留字)來命名變量(4)中文也可以聲明變量,不建議使用它。
  • 想加密JavaScript怎麼辦,試試這款加密庫!
    今天要推薦的是一款javascript加密庫crypto-js,crypto-js是一個前端Javascript標準加密算法庫,crypto-js為 JavaScript 提供了各種各樣的加密算法。