JavaScript Math对象
Math 对象
Math 对象用于执行数学任务。
使用 Math 的属性和方法的语法:
var pi_value=Math.PI;
var sqrt_value=Math.sqrt(15);
注释: Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(),像 Math.sin() 这样的函数只是函数,不是某个对象的方法。您无需创建它,通过把 Math 作为对象使用就可以调用其所有属性和方法。
Math 对象属性
属性 | 描述 |
---|---|
E | 返回算术常量e,即自然对数的底数(约等于2.718)。 |
LN2 | 返回 2 的自然对数(约等于0.693)。 |
LN10 | 返回 10 的自然对数(约等于2.302)。 |
LOG2E | 返回以 2 为底的 e 的对数(约等于 1.414)。 |
LOG10E | 返回以 10 为底的 e 的对数(约等于0.434)。 |
PI | 返回圆周率(约等于3.14159)。 |
SQRT1_2 | 返回返回 2 的平方根的倒数(约等于 0.707)。 |
SQRT2 | 返回 2 的平方根(约等于 1.414)。 |
Math 对象方法
方法 | 描述 |
---|---|
abs(x) | 返回数的绝对值。 |
acos(x) | 返回数的反余弦值。 |
asin(x) | 返回数的反正弦值。 |
atan(x) | 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。 |
atan2(y,x) | 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。 |
ceil(x) | 对数进行上舍入。 |
cos(x) | 返回数的余弦。 |
exp(x) | 返回 e 的指数。 |
floor(x) | 对数进行下舍入。 |
log(x) | 返回数的自然对数(底为e)。 |
max(x,y) | 返回 x 和 y 中的最高值。 |
min(x,y) | 返回 x 和 y 中的最低值。 |
pow(x,y) | 返回 x 的 y 次幂。 |
random() | 返回 0 ~ 1 之间的随机数。 |
round(x) | 把数四舍五入为最接近的整数。 |
sin(x) | 返回数的正弦。 |
sqrt(x) | 返回数的平方根。 |
tan(x) | 返回角的正切。 |
toSource() | 返回该对象的源代码。 |
valueOf() | 返回 Math 对象的原始值。 |
floor() 方法
定义和用法
floor() 方法可对一个数进行下舍入。
语法
Math.floor(x)
参数 | 描述 |
---|---|
x | 必需。任意数值或表达式。 |
返回值
小于等于 x,且与 x 最接近的整数。
说明
floor() 方法执行的是向下取整计算,它返回的是小于或等于函数参数,并且与之最接近的整数。
ceil()方法
定义和用法
ceil() 方法可对一个数进行上舍入。
语法
Math.ceil(x)
参数 | 描述 |
---|---|
x | 必需。必须是一个数值。 |
返回值
大于等于 x,并且与它最接近的整数。
说明
ceil() 方法执行的是向上取整计算,它返回的是大于或等于函数参数,并且与之最接近的整数。
max() 方法
定义和用法
max() 方法可返回两个指定的数中带有较大的值的那个数。
语法
Math.max(x...)
参数 | 描述 |
---|---|
x | 0 或多个值。在 ECMASCript v3 之前,该方法只有两个参数。 |
返回值
参数中最大的值。如果没有参数,则返回 -Infinity。如果有某个参数为 NaN,或是不能转换成数字的非数字值,则返回 NaN。
min() 方法
定义和用法
min() 方法可返回指定的数字中带有最低值的数字。
语法
Math.min(x,y)
参数 | 描述 |
---|---|
x | 0 或多个值。在 ECMASCript v3 之前,该方法只有两个参数。 |
返回值
参数中最小的值。如果没有参数,则返回 Infinity。如果有某个参数为 NaN,或是不能转换成数字的非数字值,则返回 NaN。
random() 方法
定义和用法
random() 方法可返回介于 0 ~ 1 之间的一个随机数。
语法
Math.random()
返回值
0.0 ~ 1.0 之间的一个伪随机数。
round() 方法
定义和用法
round() 方法可把一个数字舍入为最接近的整数。
语法
Math.round(x)
参数 | 描述 |
---|---|
x | 必需。必须是数字。 |
返回值
与 x 最接近的整数。
范围内取随机数
// 前提条件 x比y大
Math.round(Math.random()*(y-x)+x);
随机取值 1~x
Math.ceil(Math.random()*x);