Math 对象是 JavaScript 的一个内置对象,主要用于执行常见的算数任务。Math 对象中提供了多种算数值类型和函数。我们在使用 Math 对象时,不能使用构造函数的方式创建,也不需要初始化,可以直接使用对象调用属性和方法。
PI属性
PI
是 Math 对象中的一个静态属性,其实就是数学中的 π
,即圆的周长和它的直径之比,这个值近似为 3.141592653589793。
示例:
输出 Math.PI
的值:
console.log(Math.PI); // 3.141592653589793
Math对象常用方法
Math 对象中有很多常用的方法,这些方法在使用时,可以直接通过 Math.方法名()
的格式使用。
round()方法
此方法的返回值是四舍五入为最接近的整数,也就是说如果我们想要将一个小数化为最接近的整数,可以使用这个方法。
示例:
将小数4.02化为整数,输出结果为4:
var x = 4.02;
console.log(Math.round(x));
// 输出:4
pow()方法
此方法返回值是 x 的 y 次幂,这个方法中有两个参数,两个参数都必须为数字,第一个参数 x 为底数,第二个参数 y 为幂数。
示例:
例如我们获取 4 的 3 次方的值:
var result = Math.pow(4, 3);
console.log(result);
// 输出: 64
sqrt()方法
此方法用于返回一个数的平方根,方法中的参数必须是大于等于 0 的数。
示例:
例如分别输出16、36、56的平方根:
console.log(Math.sqrt(16)); // 4
console.log(Math.sqrt(49)); // 7
console.log(Math.sqrt(81)); // 9
abs()方法
此方法返回一个数的绝对(正)值。如果参数不是数字则返回 NaN,如果参数的值为null,则返回0。
示例:
求一个数的绝对值:
console.log(Math.abs("xkd")); // NaN
console.log(Math.abs(null)); // 0
console.log(Math.abs(18)); // 18
console.log(Math.abs(-5)); // 5
console.log(Math.abs(-0.369)); // 0.369
ceil()方法
此方法对一个数进行上舍入,也就是向上取整,返回值大于或等于函数参数,并且与之最接近的整数。如果参数是一个整数,该值不变。
示例:
正数的向上取整应该好理解,我们需要注意的是负数,函数的返回值要大于等于函数参数,例如 -7.1
向上取整得到 -7
:
console.log(Math.ceil(7.1)); // 8
console.log(Math.ceil(7.9)); // 8
console.log(Math.ceil(7)); // 7
console.log(Math.ceil(-7.1)); // -7
console.log(Math.ceil(-7.9)); // -7
floor()方法
返回值可以对一个数进行下舍入,也就是向下取整。用法和ceil()方法
函数差不多,但是与它相反。
示例:
对指定数进行向下取整:
console.log(Math.floor(7.1)); // 7
console.log(Math.floor(7.9)); // 7
console.log(Math.floor(7)); // 7
console.log(Math.floor(-7.1)); // -8
console.log(Math.floor(-7.9)); // -8
min()/max()方法
min()
方法可返回指定的数字中带有最低值的数字。max()
方法可返回指定的数字中带有最高值的数字。这两个函数所带的参数都必须为0 或多个值。
示例:
获取一个组数中的最大值,和最小值:
console.log(Math.min(1, 5, 8, 13, 18, 7, 32)); // 1
console.log(Math.max(1, 5, 8, 13, 18, 7, 32)); // 32
random()方法
此方法返回介于 0(包括) 与 1(不包括) 之间的随机数。
示例:
生成五个0 ~1 之间的随机数:
for (var i = 0; i < 5; i++){
console.log(Math.random());
}
输出:
0.17273544618145809
0.36523144388086504
0.7815504937100637
0.5652594593574147
0.3831265246041189
动手练习
下面是定义好的几个变量:
var n1 = 3.14;
var n2 = 7.6;
var n3 = 1.98;
var n4 = 9;
var n5 = 64;
var n6 = -11;
var n7 = [14, 5, 2, 6, 7, 8];
1.请在控制台输出 n1、n2、n3 最近似值整数?
2.请在控制台输出变量 n4 的 3 次幂,和变量 n5 的平方根值?
3.请在控制台输出变量 n6 的绝对(正)值?
4.返回变量 n7 中的最大值和最小值?