Javascript之Math对象详解
Math对象不同于上述的对象,它可以说是一个公共数学类,里面有很多数学方法,用于各种数学运算
但是Math对象不需要构造,对于其中的方法直接使用即可
1、常量(即属性)
E 返回算术常量e,即自然对数的底数(约等于2.718)
下面是它们的值:
document.write("Math.E="+Math.E+"<br>"); document.write("Math.LN2="+Math.LN2+"<br>"); document.write("Math.LN10="+Math.LN10+"<br>"); document.write("Math.LOG2E="+Math.LOG2E+"<br>"); document.write("Math.LOG10E="+Math.LOG10E+"<br>"); document.write("Math.PI="+Math.PI+"<br>"); document.write("Math.SQRT1_2="+Math.SQRT1_2+"<br>"); document.write("Math.SQRT2="+Math.SQRT2+"<br>");
输出结果:
Math.E=2.718281828459045
Math.LN2=0.6931471805599453
Math.LN10=2.302585092994046
Math.LOG2E=1.4426950408889634
Math.LOG10E=0.4342944819032518
Math.PI=3.141592653589793
Math.SQRT1_2=0.7071067811865476
Math.SQRT2=1.4142135623730951
2、abs()方法可返回数的绝对值
Math.abs(x);x必须为一个数值,此数可以是整数,小数都可以
document.write(Math.abs(-2.77));//输出2.77
3、acos(x)返回数的反余弦值。
Math.acos(x);x必须是-1.0~1.0之间的数
如果x不在上述范围,则返回NaN
4、asin()方法可返回一个数的反正弦值。
Math.asin(x);x必须是一个数值,该值介于-1.0~1.0之间。
如果参数x超过了-1.0~1.0的范围,那么浏览器将返回NaN。
5、atan()方法可返回数字的反正切值。
Math.atan(x);x必需。必须是一个数值。
返回的值是-PI/2到PI/2之间的弧度值。
6、atan2()方法可返回从x轴到点(x,y)之间的角度。
Math.atan2(y,x)
-PI到PI之间的值,是从X轴正向逆时针旋转到点(x,y)时经过的角度。
7、ceil()方法可对一个数进行上舍入。
什么是上舍入?即大于等于x,并且与它最接近的整数。
Math.ceil(x);x必需。必须是一个数值。
document.write(Math.ceil(0.60)+"<br/>") document.write(Math.ceil(0.40)+"<br/>") document.write(Math.ceil(5)+"<br/>") document.write(Math.ceil(5.1)+"<br/>") document.write(Math.ceil(-5.1)+"<br/>") document.write(Math.ceil(-5.9))
输出为:
1
1
5
6
-5
-5
对于负数,你懂的
8、cos()方法可返回一个数字的余弦值。
Math.cos(x);x必需。必须是一个数值。返回的是-1.0到1.0之间的数。、
x其实要求是输入一个弧度值,例如--->
π代表的是180°等,π即Math.PI
document.write(Math.cos(Math.PI));
输出为-1
但是假如:
document.write(Math.cos(Math.PI/2));
输出为:6.123233995736766e-17
而:
document.write(Math.cos(Math.PI/3));
输出为:0.5000000000000001
为什么会出现这些怪异的数字呢?
其实大家都知道document.write(Math.cos(Math.PI/2));应该输出0,而在Javascript中可能没有求的0,所以就用了一个非常非常小的数代替
类似的document.write(Math.cos(Math.PI/3));应该是0.5才对,但是却在最后面多了一位
这些是小问题,没啥好说的,本身寄存器就不可能表示所有数的,因此在计算过程中出现差错也很正常
9、exp()方法可返回e的x次幂的值。
Math.exp(x);x必需。任意数值或表达式。被用作指数。
返回e的x次幂。e代表自然对数的底数,其值近似为2.71828。
document.write(Math.exp(1)+"<br/>");//输出2.718281828459045
10、floor()方法可对一个数进行下舍入。
和ceil()方法相对应,floor()方法是对一个数进行下舍入,即小于等于x,且与x最接近的整数。
Math.floor(x);
document.write(Math.floor(0.60)+"<br/>") document.write(Math.floor(0.40)+"<br/>") document.write(Math.floor(5)+"<br/>") document.write(Math.floor(5.1)+"<br/>") document.write(Math.floor(-5.1)+"<br/>") document.write(Math.floor(-5.9))
输出为:
0
0
5
5
-6
-6
对于负数,你懂的
11、log()方法可返回一个数的自然对数。
Math.log(x);//参数x必须大于0,大于0则结果为NaN,等于0则为-Infinity
document.write(Math.log(2.7183)+"<br/>") document.write(Math.log(2)+"<br/>") document.write(Math.log(1)+"<br/>") document.write(Math.log(0)+"<br/>") document.write(Math.log(-1))
输出为:
1.0000066849139877
0.6931471805599453
0
-Infinity
NaN
从上面我们可以看出
12、max()方法可返回两个指定的数中带有较大的值的那个数。
Math.max(x...),//x为0或多个值。在ECMASCriptv3之前,该方法只有两个参数。
返回值:
参数中最大的值。
如果没有参数,则返回-Infinity。
如果有某个参数为NaN,或是不能转换成数字的非数字值,则返回NaN。
如下例:
document.write(Math.max(5,3,8,1));//8 document.write(Math.max(5,3,8,'M'));//NaN document.write(Math.max(5));//5 document.write(Math.max());//-Infinity
13、min()方法可返回指定的数字中带有最低值的数字。
Math.min(x,y);x为0或多个值。在ECMASCriptv3之前,该方法只有两个参数。
返回值:
参数中最小的值。
如果没有参数,则返回Infinity。
如果有某个参数为NaN,或是不能转换成数字的非数字值,则返回NaN。
和max()方法使用类似
14、pow()方法可返回x的y次幂的值。
Math.pow(x,y);//
x必需。底数。必须是数字。
y必需。幂数。必须是数字。
返回值:
如果结果是虚数或负数,则该方法将返回NaN。如果由于指数过大而引起浮点溢出,则该方法将返回Infinity。
如下例:
document.write(Math.pow()+'<br>'); document.write(Math.pow(2)+'<br>'); document.write(Math.pow(2,2)+'<br>'); document.write(Math.pow(2,2,2)+'<br>'); document.write(Math.pow('M',2)+'<br>');
输出:
NaN
NaN
4
4
NaN
15、random()方法可返回介于0~1之间的一个随机数。
Math.random();//无参
返回:
0.0~1.0之间的一个伪随机数。
何为伪随机数?
真正意义的随机数是某次随机事件产生的结果,经过无数次后表现为呈现某种概率论,它是不可预测的
而伪随机数是根据伪随机算法实现的,它是采用了一种模拟随机的算法,因此被称为伪随机数
document.write(Math.random())
0.12645312909485157
16、round()方法可把一个数字舍入为最接近的整数。
Math.round(x),x必需。必须是数字。
对于0.5,该方法将进行上舍入。
例如,3.5将舍入为4,而-3.5将舍入为-3。
其实就感觉此方法是用ceil()和floor()方法结合实现的
document.write(Math.round(0.60)+"<br/>") document.write(Math.round(0.50)+"<br/>") document.write(Math.round(0.49)+"<br/>") document.write(Math.round(-4.40)+"<br/>") document.write(Math.round(-4.60))
输出为:
1
1
0
-4
-5
17、sin()方法可返回一个数字的正弦。
Math.sin(x),x必需。一个以弧度表示的角。将角度乘以0.017453293(2PI/360)即可转换为弧度。
返回值:
参数x的正弦值。返回值在-1.0到1.0之间。
document.write(Math.sin(3)+"<br/>") document.write(Math.sin(-3)+"<br/>") document.write(Math.sin(0)+"<br/>") document.write(Math.sin(Math.PI)+"<br/>") document.write(Math.sin(Math.PI/2)
输出为:
0.1411200080598672
-0.1411200080598672
0
1.2246063538223772e-16
1
18、sqrt()方法可返回一个数的平方根。
Math.sqrt(x);//x必需,必须是大于等于0的数。
返回值:
参数x的平方根。如果x小于0,则返回NaN。
它相当于Math.pow(x,0.5);
19、tan()方法可返回一个表示某个角的正切的数字。
Math.tan(x),//x必需。一个以弧度表示的角。将角度乘以0.017453293(2PI/360)即可转换为弧度。
查看更多JavaScript的语法,大家可以关注:《JavaScript参考教程》、《JavaScript代码风格指南》,也希望大家多多支持毛票票。