你的位置:首页 > Java教程

[Java教程]javascript类型系统之Math


目录
[1]属性 [2]方法 [3]tips

前面的话

  和其他对象不同,Math对象是一个静态对象,而不是构造函数。实际上,Math只是一个由Javascript设置的对象命名空间,用于存储数学函数

 

属性

Math.E       自然对数的底数,即常量e的值(约等于2.718)Math.PI      派的值(约等于3.14159)

console.log(Math.E);//2.718281828459045console.log(Math.PI);//3.141592653589793

 

Math.LN2      2的自然对数(约等于0.693)Math.LN10     10的自然对数(约等于2.302)Math.LOG2E     以2为底e的对数(约等于1.414)Math.LOG10E    以10为底e的对数(约等于0.434)

console.log(Math.LN2);//0.6931471805599453  console.log(Math.LN10);//2.302585092994046console.log(Math.LOG2E);//1.4426950408889634console.log(Math.LOG10E);//0.4342944819032518

 

Math.SQRT2     2的平方根(约等于1.414)Math.SQRT1_2    1/2的平方根,即2的平方根的倒数(约等于0.707)

console.log(Math.SQRT2);//1.4142135623730951console.log(Math.SQRT1_2);//0.7071067811865476

 

方法

  这些方法都涉及到Number()隐式类型转换;若超出方法范围,将返回NaN

Math.min()       返回一组数字中的最小值Math.max()       返回一组数字中的最大值

console.log(Math.min(1,2,3));//1console.log(Math.max(1,2,3));//3

 

Math.ceil(num)     向上舍入为整数Math.floor(num)    向下舍入为整数Math.round(num)    四舍五入为整数

console.log(Math.ceil(12.6));//13console.log(Math.floor(12.6));//12console.log(Math.round(12.6));//13

 

Math.abs(num)     返回num的绝对值Math.random()     返回大于等于0小于1的一个随机数

console.log(Math.abs(-10));//10console.log(Math.random());//0.741887615993619

 

Math.exp(num)     返回Math.E的num次幂Math.log(num)     返回num的自然对数Math.sqrt(num)     返回num的平方根(x必须是大于等于0的数)Math.pow(num,power)  返回num的power次幂

console.log(Math.exp(0));//1console.log(Math.log(10));//2.302585092994046console.log(Math.sqrt(100));//10console.log(Math.pow(10,2));//100

 

Math.sin(x)      返回x的正弦值Math.cos(x)      返回x的余弦值Math.tan(x)      返回x的正切值  Math.asin(x)      返回x的反正弦值(x必须是-1到1之间的数)Math.acos(x)      返回x的反余弦值(x必须是-1到1之间的数)Math.atan(x)      返回x的反正切值Math.atan2(y,x)    返回y/x的反正切值

console.log(Math.sin(30*Math.PI/180));//0.49999999999999994  console.log(Math.cos(60*Math.PI/180));//0.5000000000000001console.log(Math.tan(45*Math.PI/180));//0.9999999999999999  console.log(Math.asin(1)*180/Math.PI);//90console.log(Math.acos(1)*180/Math.PI);//0console.log(Math.atan(1)*180/Math.PI);//45console.log(Math.atan2(1,1)*180/Math.PI);//45

 

tips

[tips1]找到数组中的最大或最小值

var values = [1,2,3,4,5,6,7,8];var max = Math.max.apply(Math,values);//8

[tips2]从某个整数范围内随机选择一个值

value = Math.floor(Math.random()*可能值的总数 + 第一个可能的值)

[tips3]通过最小值和最大值随机选择一个值

function selectFrom(lowerValue,upperValue){  var choices = upperValue - lowerValue + 1;  return Math.floor(Math.random()*choices + lowerValue);}var num = selectFrom(2,10);console.log(num);