JS数学操作 – JavaScript高级教程

上一章JavaScript教程请查看:JS日期和时间
在本教程中,我们将学习如何在JavaScript中执行数学操作。
使用Math对象JavaScript Math对象提供了许多有用的属性和方法来执行数学任务,比如生成随机数、四舍五入数、获取PI之类的值以及执行计算等等。它还包括执行数学任务的方法,这些任务通常是不可能完成的,或者太复杂而无法使用标准的数学运算符(+、-、*和/)执行,比如计算正弦或余弦值。
Math.PI属性Math.PI 属性表示圆周长与直径之比,也就是圆周率,π(π)是一种数学常数,这大约是3.14159,Math.PI=π≈3.14159
下面是一个用Math.PI计算圆的面积的例子:

// PI document.write(Math.PI); // : 3.141592653589793 // 计算圆形面积 function calculateCircleArea(radius){ var area = (Math.PI) * radius * radius; return area; } document.write(calculateCircleArea(5)); // : 78.53981633974483 document.write(calculateCircleArea(10)); // : 314.1592653589793

注意: Math对象是一个内置的JavaScript对象,因此可以直接访问它的属性和方法。你不需要创建Math对象,因为它是由JavaScript解释器自动创建的。
获取绝对值abs()方法用于计算数字的绝对(正)值,因此,-1返回为1,-5返回为5,依此类推。下面是一个例子:
document.write(Math.abs(-1)); // : 1 document.write(Math.abs(1)); // : 1 document.write(Math.abs(-5)); // : 5 document.write(Math.abs(-10.5)); // : 10.5

生成随机数random()方法用于生成范围从0(包括0到但不包括1)的浮点随机数。然而,如果你想要一个介于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

计算一个数的平方根sqrt()方法用于计算一个数的平方根:Math.sqrt(x) = x
如果数字是负数,则返回NaN。下面是一个例子:
document.write(Math.sqrt(4)); // : 2 document.write(Math.sqrt(16)); // : 4 document.write(Math.sqrt(0.25)); // : 0.5 document.write(Math.sqrt(-9)); // : NaN /* 计算斜边 斜边是直角三角形的最长边. */ function calculateHypotenuse(a, b) { return Math.sqrt((a * a) + (b * b)); } document.write(calculateHypotenuse(3, 4)); // : 5 document.write(calculateHypotenuse(5, 12)); // : 13

四舍五入数字JavaScript Math对象提供了很少的四舍五入方法,每个方法都有自己的用途。下一节将详细介绍这些方法。
ceil()方法
ceil()方法将一个数字四舍五入到下一个最高整数,如3.5变成4,-5.7变成-5(因为-5大于-6)这里有一个例子:
document.write(Math.ceil(3.5)); // : 4 document.write(Math.ceil(-5.7)); // : -5 document.write(Math.ceil(9.99)); // : 10 document.write(Math.ceil(-9.99)); // : -9 document.write(Math.ceil(0)); // : 0

floor()方法
floor()方法将一个数字四舍五入为下一个最小的整数,如3.5变成3,-5.7变成-6(因为-6小于-5)这里有一个例子:
document.write(Math.floor(3.5)); // : 3 document.write(Math.floor(-5.7)); // : -6 document.write(Math.floor(9.99)); // : 9 document.write(Math.floor(-9.99)); // : -10 document.write(Math.floor(0)); // : 0

round()方法
round()方法将数字四舍五入为最接近的整数,如果小数部分是.5或更大,则将数字四舍五入,否则将向下四舍五入,如3.5变成4,-5.7变成-6,4.49变成4,以此类推。这里有一个例子:
document.write(Math.round(3.5)); // : 4 document.write(Math.round(-5.7)); // : -6 document.write(Math.round(7.25)); // : 7 document.write(Math.round(4.49)); // : 4 document.write(Math.round(0)); // : 0

求最大和最小的数【JS数学操作 – JavaScript高级教程】max()和Math.min()方法分别用于查找一组数字中最大或最小的数字。这里有一个例子:
document.write(Math.max(1, 3, 2)); // : 3 document.write(Math.max(-1, -3, -2)); // : -1 document.write(Math.min(1, 3, 2)); // : 1 document.write(Math.min(-1, -3, -2)); // : -3

你还可以使用apply()方法查找数组或类数组对象中的最大值或最小值,如下面的示例所示:
var numbers = [1, 3, 2]; document.write(Math.max.apply(null, numbers)); // : 3 document.write(Math.min.apply(null, numbers)); // : 1

还有更简单的方法。在ECMAScript 6中,你可以使用新的扩展操作符(…)完成同样的事情,如下例所示:
var numbers = [1, 3, 2]; document.write(Math.max(...numbers)); // : 3 document.write(Math.min(...numbers)); // : 1

幂运算pow()方法用于将数字提升到指定的幂。
数学表达式Math.pow(x, y)——数学上等价于x^y——表示底数x乘以指数y的次数。
document.write(Math.pow(3, 2)); // : 9 document.write(Math.pow(0, 1)); // : 0 document.write(Math.pow(5, -2)); // : 0.04 document.write(Math.pow(16, 0.5)); // : 4 document.write(Math.pow(8, 1/3)); // : 2

正指数表示乘法(5^2 = 5 x 5 = 25),负指数表示除法(5^-2 = 1/5^2 = 0.04),而分数指数表示基数的根。
执行三角操作JavaScript的Math对象还提供了一些三角函数方法,比如sin()、cos()、tan()来执行三角函数操作。这些方法使用弧度单位工作,所以你需要任何程度的测量乘以π/ 180之前使用它们。
因为π弧度都等于180度:πrad = 180°,所有π/ 2弧度等于90度,π/ 3弧度= 60度,等等。这里有一个例子:
document.write(Math.sin(0 * Math.PI / 180)); // : 0 document.write(Math.sin(90 * Math.PI / 180)); // : 1 document.write(Math.cos(0 * Math.PI / 180)); // : 1 document.write(Math.cos(180 * Math.PI / 180)); // : -1 document.write(Math.tan(0 * Math.PI / 180)); // : 0

    推荐阅读