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