JavaScript的Math对象的属性提供了常用的数学常数值,当我们需要这些常数时,可以直接使用这些常数。Math对象的属性如下:
属性 | 描述 |
Math.E | 数学常量e的值,其值为2.718281828459045091 |
Math.LN2 | 2的自然对数值,其值为0.6931471805599452862 |
Math.LN10 | 10的自然对数值,其值为2.302585092994045901 |
Math.LOG2E | log2e的值,其值为1.442695040888963387 |
Math.PI | 数学常量π的值,其值为3.141592653589793116 |
Math.SQRT1_2 | 2的平方根的值的二分之一,其值为0.7071067811865475244 |
Math.SQRT2 | 2的平方根的值,其值为1.4142135623730951 |
Math对象提供了完整的数学计算所需要的函数和方法,例如三角函数、随机数、四舍五入、计算平方根等。下表中列出了Math对象的方法。
方法 | 描述 |
Math.abs(x) | 返回x的绝对值 |
Math.acos(x) | 返回x的反余弦值,返回值的单位为弧度,值域在0-π之间 |
Math.asin(x) | 返回x的反正弦值,返回值的单位为弧度,值域在-π/2 - π/2之间 |
Math.atan(x) | 返回x的反正切值,返回值的单位为弧度,值域在-π/2 - π/2之间 |
Math.atan2(y,x) | 计算x/y的反正切值,返回值的单位为弧度,值域在-π - π之间 |
Math.ceil(x) | 返回大于等于x但最接近x的整数 |
Math.cos(x) | 返回x的余弦函数值,x的单位为弧度 |
Math.exp(x) | 返回ex的值,e是欧拉常数 |
Math.floor(x) | 返回小于等于x但最接近x的整数 |
Math.log(x) | 返回x的自然对数值 |
Math.max(args...) | 返回一组参数中的最大数。没有参数时返回-Infinity,如果任何参数的值为NaN或任何参数的值不能转换为数值,那么该方法返回NaN |
Math.min(args...) | 返回一组参数中的最小数。没有参数时返回-Infinity,如果任何参数的值为NaN或任何参数的值不能转换为数值,那么该方法返回NaN |
Math.pow(x,y) | 计算xy的值 |
Math.random() | 返回0.0-1.0之间的一个伪随机数 |
Math.round(x) | 返回最接近x的整数,及对x做四舍五入运算 |
Math.sin(x) | 返回x的正弦值,x的单位为弧度 |
Math.sqrt(x) | 返回x的平方根,x大于等于0 |
Math.tan(x) | 返回x的正切值,x的单位是弧度 |
数值的截断运算
JavaScript提供了3个Math对象的方法进行数值的截断运算。这3个方法分别是ceil()
,floor()
和round()
。
1、ceil()
方法
ceil(x)
方法返回大于等于x但最接近x的整数,它也被称为向上取整。例如,ceil(6.05)
的返回值为7,7是大于6.05且最接近6.05的整数。ceil(-6.05)
的返回值是-6,-6是大于-6.05且最接近-6.05的整数。
2、floor()
方法
floor(x)
方法返回小于等于但是最接近x的整数,它也被称为向下取整。例如,floor(6.95)
的返回值是6,6是小于6.95且最接近6.95的整数。floor(-6.95)
的返回值是-7,-7是小于-6.95且最接近-6.95的整数。
3、round()
方法
round()
方法实现四舍五入。例如,round(2.5)
和round(2.8)
的值都是3,而round(2.1)
和round(2.3)
的值都是2。
JavaScript还提供了一个全局函数parseInt()
,该函数简单的截断(丢弃)数值中的小数部分。例如,parseInt(6.9)
的值是6。
生成随机数
我们在编写程序的时候,经常需要使用到随机数。Math对象的random()
方法可以生成0-1之间的随机数,它的随机种子采用系统时间,因此可以保证每次调用random()
方法时都会得到不同的伪随机数序列。
当需要其他范围的随机数的时候,可以采用放大倍数和截断的方法来实现。例如,如果需要0-100之间的随机数,那么使用表达式floor(Math.random()*100)
就可以实现。
下面是一个有趣的掷骰子的例子,它使用Math.random()
来获取随机的骰子数: