Math

Baseline 廣泛可用 *

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

* 此特性的某些部分可能存在不同級別的支援。

Math 名稱空間物件包含數學常量和函式的靜態屬性和方法。

MathNumber 型別一起使用。它不與 BigInt 一起使用。

描述

與大多數全域性物件不同,Math 不是一個建構函式。您不能將其與 new 運算子 一起使用,也不能將 Math 物件作為函式呼叫。Math 的所有屬性和方法都是靜態的。

注意: 許多 Math 函式的精度是依賴於實現的

這意味著不同的瀏覽器可能會給出不同的結果。即使是同一個 JavaScript 引擎在不同的作業系統或架構上,也可能給出不同的結果!

靜態屬性

Math.E

尤拉數,自然對數的底數;約等於 2.718

Math.LN10

10 的自然對數;約等於 2.303

Math.LN2

2 的自然對數;約等於 0.693

Math.LOG10E

E 的以 10 為底的對數;約等於 0.434

Math.LOG2E

E 的以 2 為底的對數;約等於 1.443

Math.PI

圓的周長與其直徑的比值;約等於 3.14159

Math.SQRT1_2

½ 的平方根;約等於 0.707

Math.SQRT2

2 的平方根;約等於 1.414

Math[Symbol.toStringTag]

[Symbol.toStringTag] 屬性的初始值是字串 "Math"。此屬性用於 Object.prototype.toString()

靜態方法

Math.abs()

返回輸入值的絕對值。

Math.acos()

返回輸入值的反餘弦值。

Math.acosh()

返回輸入值的雙曲反餘弦值。

Math.asin()

返回輸入值的反正弦值。

Math.asinh()

返回數字的雙曲反正弦值。

Math.atan()

返回輸入值的反正切值。

Math.atan2()

返回其引數商的反正切值。

Math.atanh()

返回輸入值的雙曲反正切值。

Math.cbrt()

返回輸入值的立方根。

Math.ceil()

返回大於或等於輸入值的最小整數。

Math.clz32()

返回 32 位整數輸入的最高位的零位數。

Math.cos()

返回輸入值的餘弦值。

Math.cosh()

返回輸入值的雙曲餘弦值。

Math.exp()

返回 ex,其中 x 是引數,e 是尤拉數(2.718...,自然對數的底數)。

Math.expm1()

返回 exp(x) 減去 1 的結果。

Math.floor()

返回小於或等於輸入值的最大整數。

Math.f16round()

返回輸入值最接近的 半精度浮點數表示。

Math.fround()

返回輸入值最接近的 單精度浮點數表示。

Math.hypot()

返回其引數平方和的平方根。

Math.imul()

返回輸入值 32 位整數乘法的結果。

Math.log()

返回輸入值的自然對數(㏒e;也稱為 ㏑)。

Math.log10()

返回輸入值的以 10 為底的對數。

Math.log1p()

返回數字 x1 + x 的自然對數(㏒e;也稱為 ㏑)。

Math.log2()

返回輸入值的以 2 為底的對數。

Math.max()

返回零個或多個數字中的最大值。

Math.min()

返回零個或多個數字中的最小值。

Math.pow()

返回底數 xy 次冪(即 xy)。

Math.random()

返回一個介於 01 之間的偽隨機數。

Math.round()

返回輸入值四捨五入到最接近整數的值。

Math.sign()

返回輸入值的符號,指示它是正數、負數還是零。

Math.sin()

返回輸入值的正弦值。

Math.sinh()

返回輸入值的雙曲正弦值。

Math.sqrt()

返回輸入值的正平方根。

Math.sumPrecise()

返回傳入的可迭代數字的總和,避免中間結果中的浮點精度損失。

Math.tan()

返回輸入值的正切值。

Math.tanh()

返回輸入值的雙曲正切值。

Math.trunc()

返回輸入值的整數部分,刪除任何小數位數。

示例

度與弧度之間的轉換

三角函式 sin()cos()tan()asin()acos()atan()atan2() 期望(並返回)以弧度為單位的角度。

由於人們傾向於以度為單位思考,並且某些函式(如 CSS 變換)可以接受度,因此提供用於在這兩者之間進行轉換的函式非常有用。

js
function degToRad(degrees) {
  return degrees * (Math.PI / 180);
}

function radToDeg(rad) {
  return rad / (Math.PI / 180);
}

計算等邊三角形的高度

如果我們想計算一個等邊三角形的高度,並且我們知道它的邊長是 100,我們可以使用公式:鄰邊長乘以角度的正切等於對邊長。

An equilateral triangle where a perpendicular of one edge is drawn from the opposite vertex, forming a right triangle with three sides marked as "adjacent", "opposite", and "hypotenuse". The angle between the "adjacent" and "hypotenuse" sides is 60 degrees.

在 JavaScript 中,我們可以用以下方式實現:

js
50 * Math.tan(degToRad(60));

我們使用 degToRad() 函式將 60 度轉換為弧度,因為 Math.tan() 期望以弧度為單位的輸入值。

返回兩個邊界之間的隨機整數

這可以透過結合使用 Math.random()Math.floor() 來實現。

js
function random(min, max) {
  const num = Math.floor(Math.random() * (max - min + 1)) + min;
  return num;
}

random(1, 10);

規範

規範
ECMAScript® 2026 語言規範
# sec-math-object

瀏覽器相容性

另見