Math对象是一个比较特别的对象,它不可以用new关键词生成。
Math对象封装了数算计算常用的量,提供了数学计算所需要的API,在编程中遇到的数学运算问题时,我们可以直接调用Math对象进行计算。
当然,Math对象的功能用其他的方法也能做到,比如Math.floor方法可以用parseInt(),按位或运算’|’,但在内层操作上是有区别的。Math对象的每一个方法都是操作number类型的数据的,所以在操作之前会将数据转换成number对象,而比如说parseInt()方法会先将数据转化为string类型的数据再读取字符进行操作,而且有些方法返回的值时字符串,比如说toFixed(),要想用返回值进行下一次的计算时,需要先转换为数字再操作。
所以在需要进行数学运算时,优先使用Math对象提供的方法进行解决。
随机数
random方法,这是我目前用到最多的一种方法,可以产生0到1的随机数,包括0不包括1(符合含头不含尾的规律),也就是[0,1)。根据一些简单计算可以利用这个函数随机产生某个范围内的需要的数。一般我们可以利用random产生0~n的数字,代码:Math.random()*n,如果需要生成整数或者偶数,奇数之类的,可以通过简单计算以及Math对象其他方法可以得到。
// 取1~100的偶数
Math.ceil(Math.random()*50)*2;
取整
ceil方法和floor方法都可以用于取整,区别在于向上取证和向下取整,与random搭配使用时效果明显,ceil可以包括上限,floor可以包括下限。
// 向上取整,可以取到整数1~10
Math.ceil(Math.random()*10);
// 向下取整,可以取到整数0~9
Math.floor(Math.random()*10);
乘方开方
pow是乘方,sqrt是开方
// Math.pow(底数,幂);
Math.pow(2,2);// 输出4
// Math.sqrt(底数,幂);
Math.pow(4);// 输出2
四舍五入
round方法,round方法在进行四舍五入时,是不可以设置精确位的,但同样,通过与其他的方法搭配使用同样可以做到选择精确位
// 把需要保留的小数变为整数
num *= Math.pow(10, i);
// 取整
num = Math.round(num);
// 还原小数
num /= Math.pow(10, i);
最大值最小值
max方法和min方法,会返回比较的最大值或者最小值,可以有多个参数,但是参数不能是数组
不常用
Math对象还包含了一些不常用的数学计算
正切tan,正弦余弦sin、cos
反正弦余弦 asin、acos
绝对值 abs