JavaScript 數學運算
在本教程中,你將學習如何在 JavaScript 中執行數學運算。
使用數學物件
JavaScript Math 物件提供了許多有用的屬性和方法,用於執行數學任務,例如生成隨機數、舍入數字、獲取 PI 等值以及執行計算等。它也包括用於執行數學任務通常是不可能的或使用標準的數學運算子 (+
, -
, *
,和 /
)來執行的話太複雜,如計算正弦或餘弦值。
Math.PI 屬性
Math.PI
屬性表示圓周長與其直徑的比率。PI(π
)是一個數學常數,大約是 3.14159: Math.PI = π ≈ 3.14159
以下是使用 Math.PI 屬性計算圓的面積的示例。
// Printing PI value
document.write(Math.PI); // Prints: 3.141592653589793
// Function to calculate circle area
function calculateCircleArea(radius){
var area = (Math.PI) * radius * radius;
return area;
}
document.write(calculateCircleArea(5)); // Prints: 78.53981633974483
document.write(calculateCircleArea(10)); // Prints: 314.1592653589793
注意: Math 物件是內建的 JavaScript 物件,因此可以直接訪問其屬性和方法。你永遠不需要建立 Math 物件,因為它是由 JavaScript 直譯器自動建立的。
獲得絕對值
Math.abs()
方法用於計算數字的絕對(正)值。因此,-1
返回為 1
,-5
為 5
,依此類推。這是一個例子:
document.write(Math.abs(-1)); // Prints: 1
document.write(Math.abs(1)); // Prints: 1
document.write(Math.abs(-5)); // Prints: 5
document.write(Math.abs(-10.5)); // Prints: 10.5
生成隨機數
Math.random()
方法用於生成從且包含 0
到但不包括 1
的範圍內的浮點隨機數。但是,如果你想要一個介於 0 和大於 1 的整數之間的隨機整數,則可以使用以下解決方案:
document.write(Math.random()); // Expected output: a number between 0 and 1
// Function to create random integer
function getRandomInt(max) {
return Math.floor(Math.random() * max);
}
document.write(getRandomInt(3)); // Expected output: 0, 1 or 2
document.write(getRandomInt(1)); // Expected output: 0
計算數的平方根
Math.sqrt()
方法用於計算數字的平方根: Math.sqrt(x) = x
如果數字為負數,則返回 NaN
。這是一個例子:
document.write(Math.sqrt(4)); // Prints: 2
document.write(Math.sqrt(16)); // Prints: 4
document.write(Math.sqrt(0.25)); // Prints: 0.5
document.write(Math.sqrt(-9)); // Prints: NaN
/* Function to calculate hypotenuse.
Hypotenuse is the longest side of a right-angled triangle. */
function calculateHypotenuse(a, b) {
return Math.sqrt((a * a) + (b * b));
}
document.write(calculateHypotenuse(3, 4)); // Prints: 5
document.write(calculateHypotenuse(5, 12)); // Prints: 13
舍入數字
JavaScript Math 物件提供了幾種舍入數字的方法,每個方法都有自己的用途。以下部分將具體描述這些方法。
ceil()
方法
Math.ceil()
方法將數字四捨五入到下一個最高整數。因此,3.5 變為 4,-5.7 變為-5(因為-5 大於-6)。這是一個例子:
document.write(Math.ceil(3.5)); // Prints: 4
document.write(Math.ceil(-5.7)); // Prints: -5
document.write(Math.ceil(9.99)); // Prints: 10
document.write(Math.ceil(-9.99)); // Prints: -9
document.write(Math.ceil(0)); // Prints: 0
floor()
方法
Math.floor()
方法將數字向下舍入到下一個最低整數。因此,3.5 變為 3,-5.7 變為-6(因為-6 小於-5)。這是一個例子:
document.write(Math.floor(3.5)); // Prints: 3
document.write(Math.floor(-5.7)); // Prints: -6
document.write(Math.floor(9.99)); // Prints: 9
document.write(Math.floor(-9.99)); // Prints: -10
document.write(Math.floor(0)); // Prints: 0
round()
方法
Math.round()
方法將數字 .5
舍入為最接近的整數,使得如果小數部分為或更大,則數字向上舍入,否則向下舍入。因此,3.5 變為 4,-5.7 變為-6,4.49 變為 4,依此類推。這是一個例子:
document.write(Math.round(3.5)); // Prints: 4
document.write(Math.round(-5.7)); // Prints: -6
document.write(Math.round(7.25)); // Prints: 7
document.write(Math.round(4.49)); // Prints: 4
document.write(Math.round(0)); // Prints: 0
尋找最大和最小的數字
Math.max()
和 Math.min()
方法被用於查詢號碼是一組數字中最大或最小,分別。這是一個例子:
document.write(Math.max(1, 3, 2)); // Prints: 3
document.write(Math.max(-1, -3, -2)); // Prints: -1
document.write(Math.min(1, 3, 2)); // Prints: 1
document.write(Math.min(-1, -3, -2)); // Prints: -3
你還可以使用 apply()
方法在陣列或類陣列物件中找到最大值或最小值,如以下示例所示:
var numbers = [1, 3, 2];
document.write(Math.max.apply(null, numbers)); // Prints: 3
document.write(Math.min.apply(null, numbers)); // Prints: 1
甚至有更簡單的方法可以做到這一點。在 ECMAScript 6 中,你可以使用新的 spread 運算子 (...
) 完成相同的操作,如下例所示:
var numbers = [1, 3, 2];
document.write(Math.max(...numbers)); // Prints: 3
document.write(Math.min(...numbers)); // Prints: 1
冪運算
Math.pow()
方法用於對將數字的冪運算。
Math.pow(x, y)
表示式 - 等效於數學上的計算 x
y
- 也就是 y
個 x
相乘。這是一個例子:
document.write(Math.pow(3, 2)); // Prints: 9
document.write(Math.pow(0, 1)); // Prints: 0
document.write(Math.pow(5, -2)); // Prints: 0.04
document.write(Math.pow(16, 0.5)); // Prints: 4 (square root of 4)
document.write(Math.pow(8, 1/3)); // Prints: 2 (cube root of 8)
正指數表示乘法(52 = 5 x 5 = 25),負指數表示除法(5-2 = 1/5 2 = 0.04),而分數指數表示基數的根。
執行三角函式運算
在 JavaScript 的 Math 物件還提供了一些三角函式的方法,如 sin()
, cos()
, tan()
執行三角操作。這些方法以弧度工作,因此在使用之前需要將任何度數測量乘以 π/180
。
因為,pi
弧度等於 180 度: π rad = 180°
。因此,π/ 2 弧度等於 90 度,π/ 3 弧度等於 60 度,依此類推。這是一個例子:
document.write(Math.sin(0 * Math.PI / 180)); // Prints: 0
document.write(Math.sin(90 * Math.PI / 180)); // Prints: 1
document.write(Math.cos(0 * Math.PI / 180)); // Prints: 1
document.write(Math.cos(180 * Math.PI / 180)); // Prints: -1
document.write(Math.tan(0 * Math.PI / 180)); // Prints: 0