上一章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
推荐阅读
- JS类型转换 – JavaScript高级教程
- JS日期和时间 – JavaScript高级教程
- JS定时器timer – JavaScript教程
- JS创建对话框 – JavaScript教程
- JS窗口导航器navigator – JavaScript教程
- JS窗口历史对象history – JavaScript教程
- JS窗口位置对象location – JavaScript教程
- JS屏幕对象screen – JavaScript教程
- JS窗口对象window – JavaScript教程