JavaScript 数学运算
在本教程中,您将学习如何在 JavaScript 中执行数学运算。
使用 Math 对象
JavaScript Math 对象提供了许多有用的属性和方法来执行数学任务,例如生成随机数、舍入数字、获取 PI 等值和执行计算等等。 它还包括用于执行通常不可能或过于复杂而无法使用标准数学运算符(+
,< code>-、*
和 /
),例如计算正弦或余弦值。
Math.PI 属性
Math.PI
属性表示圆的周长与其直径的比率。 PI (π
) 是一个数学常数,约为 3.14159: Math.PI = π ≈ 3.14159
下面是一个使用 Math.PI 属性计算圆面积的示例。
// 打印 PI 值
document.write(Math.PI); // Prints: 3.141592653589793
// 计算圆面积的函数
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
范围内的浮点随机数 . 但是,如果您想要一个介于零和大于一的整数之间的随机整数,您可以使用以下解决方案:
document.write(Math.random()); // 预期输出:0 到 1 之间的数字
// 创建随机整数的函数
function getRandomInt(max) {
return Math.floor(Math.random() * max);
}
document.write(getRandomInt(3)); // 预期输出: 0, 1 or 2
document.write(getRandomInt(1)); // 预期输出: 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 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 中,您可以使用新的 扩展运算符 (...
) 完成相同的操作,如下例所示:
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)
—数学上相当于 xy
—显示 base x
乘以 exponent y
的次数。 这是一个例子:
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 (4的平方根)
document.write(Math.pow(8, 1/3)); // Prints: 2 (8的立方根)
正指数表示乘法 (52 = 5 x 5 = 25),负指数表示除法 (5-2 = 1/52 = 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