1. 基本概念
Math.acos()方法用於求一個數的反餘弦值。它的語法形式如下所示:
<code>Math.acos(x);/<code>
其中參數x應該是一個數字,即它的類型應該是Number。如果x不是Number類型的,那麼它會先被強制類型轉換為Number類型。
參數x代表的是某個角的餘弦值,而Math.acos()方法返回的正是用弧度值表示的這個角。x應該處於 [-1, 1] 範圍內,因為餘弦值的取值範圍是 [-1, 1]。如果x不在此範圍內,那麼Math.acos()將返回NaN。
Math.acos()方法的返回值由下面的規則決定,規則中x的值指的是x被轉換為Number類型後的值,如果它原本不是Number類型的話。
1. 如果x是NaN,那麼結果是NaN;
2. 如果x大於1(包括正無窮Infinity),那麼結果是NaN;
3. 如果x小於-1(包括負無窮-Infinity),那麼結果是NaN;
4. 如果x是1,那麼結果是+0;
5. x為其它 [-1, 1] 範圍內的數字,結果是餘弦值等於x的角的弧度值。
我們知道餘弦函數是一個週期函數,即有多個角的餘弦值是相同的。那麼當我們指定一個餘弦值的時候,Math.acos()方法會返回哪一個角呢?對此官方文檔作了明確的規定,那就是Math.acos()方法返回的是 [+0, π] 範圍內的角。
2. 示例
2.1 參數為[-1, 1]內的數字
我們先來看看參數正確,即參數是[-1, 1]之內的數字時,Math.acos()方法的作用。該示例的執行結果如圖1所示,其中需要注意的是1的反餘弦值為+0(0)而不是-0,且+0和-0的反餘弦值都是π/2。
<code>/<code>
2.2 參數為[-1, 1]外的數字
我們再來看看參數是 [-1, 1] 範圍之外的數字(包括NaN、Infinity和-Infinity)時,Math.acos()的返回值。下面代碼的執行結果如圖2所示。
<code>/<code>
2.3 參數不為數字
最後,我們再來看看Math.acos()的參數不是Number類型的情形。此時參數會先被轉換為Number類型,再對該數字求反餘弦值,該示例的執行結果如圖3所示。
<code>/<code>
(完)
閱讀更多 青石野草 的文章
關鍵字: JavaScript 求反 餘弦