个性化阅读
专注于IT技术分析

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

求最大和最小的数

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
赞(0)
未经允许不得转载:srcmini » JS数学操作 – JavaScript高级教程

评论 抢沙发

评论前必须登录!