这几天在刷leetcode的时候用到了一些Math对象的知识,故作一下总结~
JavaScript中的Math对象也是一个常见的内置对象,然而与String等其它常见对象不同,Math对象没有构造函数,它只是将常用的数学常量以及运算方法进行了封装,在使用时自然无需创建,直接使用该对象即可~
Math对象的属性:存储了一些数学运算中常用的常量
属性 | 值 |
E | 算数常量e(自然对数的底数) |
LN2 | 2的自然对数 |
LN10 | 10的自然对数 |
LOG2E | 以2为底的e的对数 |
LOG10E | 以10为底e的对数 |
PI | 返回圆周率 |
SQRT1_2 | 2的平方根的倒数 |
SQRT2 | 2的平方根 |
Math对象的方法:(ES6中新增了一些方法,用*标注)
分类 | 方法 | 返回值 |
三角函数 |
acos(x) | x的反余弦值 |
acosh(x) | x的反双曲余弦值* | |
asin(x) | x的反正弦值 | |
asinh(x) | x的反双曲正弦值* | |
atan(x) | x的反正切值,弧度介于[-PI/2, PI/2]范围 | |
atanh(x) | x的反双曲正切值* | |
atan2(y,x) | 从x轴到点(x,y)的角度,弧度介于[-PI/2, PI/2]范围 | |
sin(x) | x的正弦值 | |
sinh(x) | x的反正弦值 | |
cos(x) | x的余弦值 | |
cosh(x) | x的反余弦值 | |
tan(x) | x的正切值 | |
tanh(x) | x的反双曲正切值 | |
幂 |
sqrt(x) | x的平方根 |
cbrt(x) | x的立方根* | |
pow(x,y) | x的y次幂 | |
exp(x) | 返回e的x次幂 | |
expm1(x) | 返回exp(x)-1 * | |
hypot(x1,...,xn) | 返回所有参数平方之和的平方根* |
|
对数 (若x违法则返回NaN) |
log(x) | x的自然对数 |
log1p(x) | ln(x+1)* | |
log2(x) | 以2为底x的对数* | |
log10(x) | 以10为底x的对数* | |
其它 |
abs(x) | x的绝对值 |
ceil(x) | 对x上舍入 | |
floor(x) | 对x下舍入 | |
round(x) | x的四舍五入 | |
trunc(x) | x的整数部分* | |
sign(x) | x的符号(-1代表符号,1代表正号,0返回0) | |
max(x,y) | x、y的最大值 | |
min(x,y) | x,y的最小值 | |
clz32(x) | 返回x的32位二进制表示中前置0的个数* | |
fround(x) | 返回x的单精度浮点表示数* | |
imul(x,y) | x、y的32位有符号乘法运算结果* | |
random() | 0~1间的伪随机数 |
其中ES6新添加的方法,在MDN中依然标记为请谨慎使用,其实现未来可能会发生变化~