《JavaScript教程》09章 数学函数


JavaScript的数学函数全部封装在Math类里面,虽然使用频率不是太高,但却是必不可少的。

常量
Math.PI       //圆周率:3.14159265
Math.E        //自然对数的底:2.718
Math.SQRT2    //2的平方根:1.414
Math.SQRT1_2  //1/2的平方根:0.707
Math.LN2      //2的自然对数:0.693
Math.LN10     //10的自然对数:2.302
Math.LOG2E    //2为底e的对数:1.442
Math.LOG210E  //10为底e的对数:0.434

随机数
Math.random()   //产生一个大于等于0小于1的随机数
xx = Math.floor(Math.random() * 12);  //产生一个大于等于0小于12的随机数

小数部分的舍入
Math.ceil()    //小数部分不为0,则强行进1
Math.floor()   //小数部分强行舍去,即取整
Math.round()   //小数部分四舍五入
xx = Math.ceil(3.0);      //xx的值为3
xx = Math.ceil(2.001);    //xx的值为3
xx = Math.floor(3.99);    //xx的值为3
xx = Math.round(2.5);     //xx的值为3
xx = Math.round(3.49);    //xx的值为3

最大、最小、绝对值
Math.max(x,y);    //取最大值
Math.min(x,y);    //取最小值
Math.abs(x);      //取绝对值
xx = Math.max(-20,3);     //xx的值为3
xx = Math min(23,3);      //xx的值为3
xx = Math.abc(-3);        //xx的值为3

乘方、开平方、对数
Math.pow(n, m);   //n的m次乘方
Math.exp(m);      //e的m次乘方
Math.sqrt(n);     //n的平方根
Math.log(n);      //e为底n的对数
      //注: 开n次方的函数没有,但可以根据对数求得。
xx = Math.pow(2,10);    //xx的值为: 1024
xx = Math.exp(3);       //xx的值为: 20.085536923187668
xx = Math.sqrt(10);     //xx的值为: 3.1622776601683795
xx = Math.log(10);      //xx的值为: 2.302585092994046

三角函数
Math.sin(m);   //正弦: (-1~1)
Math.cos(m);   //余弦: (-1~1)
Math.tan(m);   //正切: (-∞~∞)
  //注: 度数采用的是弧度,180度应转化为π(即Math.PI),36度也就是36/180*Math.PI。
  //没有余切函数,余切为正切的倒数。
xx = Math.sin(30/180*Math.PI);   //xx的值为: 0.49999999999999994
yy = Math.cos(30/180*Math.PI);   //yy的值为: 0.8660254037844387
zz = Math.tan(45/180*Math.PI);   //zz的值为: 0.9999999999999999
ww = eval(Math.pow(xx,2)) + eval(Math.pow(yy,2));  //zz的值为: 1
Math.asin(m); //反正弦: (-π/2~π/2)
Math.acos(m); //反余弦: (0~π)
Math.atan(m); //反正切: (-π/2~π/2)
xx = Math.asin(0.5)*180/Math.PI;                //xx的值为: 30.000000000000003
yy = Math.acos(0.8660254037844387)*180/Math.PI; //yy的值为: 29.999999999999993
zz = Math.atan(1)*180/Math.PI;                  //zz的值为: 45
Math.atan2(y,x); //根据(x,y)的坐标求弧度: (-π~π)
  //注: 参数是反过来写的。
xx = Math.atan2(1, 1.732)   //xx的值为: 0.5236114777699694
                            //即: (1.732,1)坐标的度数为: 30度

取最大最小值
Math.max(x,y);   //取x和y的最大值
Math.min(x,y);   //取x和y的最小值
xx = Math.max(23, -100);   //xx的值为: 23
xx = Math.min(23, -100);   //xx的值为: -100