整理的都是我觉得比较常用的
Math 是一个内置对象, 它具有数学常数和函数的属性和方法。不是一个函数对象。与其它全局对象不同的是, Math 不是一个构造器. Math 的所有属性和方法都是静态的.
Math的属性
Math.PI
圆周率,一个圆的周长和直径之比,约等于 3.14159.
需要注意的是很多数学函数都有一个精度,并且精度在不同环境下也是不相同的。这就意味着不同的浏览器会给出不同的结果,甚至相同的 JS 引擎在不同的OS或者架构下也会给出不同的结果。
Math的方法
Math.abs(x)
返回x的绝对值.Math.abs('-1'); // 1
Math.abs(-2); // 2
Math.abs(null); // 0
Math.abs("string"); // NaN
Math.abs(); // NaN
Math.ceil(x)
返回x向上取整后的值.Math.ceil(.95); // 1
Math.ceil(4); // 4
Math.ceil(7.004); // 8
Math.ceil(-0.95); // -0
Math.ceil(-4); // -4
Math.ceil(-7.004); // -7
Math.floor(x)
返回小于x的最大整数。Math.floor( 45.95);
// 45
Math.floor( 45.05);
// 45
Math.floor( 4 );
// 4
Math.floor(-45.05);
// -46
Math.floor(-45.95);
// -46
Math.max([x[,y[,…]]])
返回0个到多个数值中最大值.(返回给定的一组数字中的最大值。如果有任一参数不能被转换为数值,则结果为 NaN。)
Math.max(10, 20); // 20
Math.max(-10, -20); // -10
Math.max(-10, 20); // 20
下面的方法使用 apply 方法寻找一个数值数组中的最大元素。
function Max(numArray) {
return Math.max.apply(null, numArray);
}
或者通过使用最新的扩展语句,获得数组中的最大值变得更容易。
var arr = [1, 2, 3];
var max = Math.max(...arr);
看下面的例子
function max(numArray){
return Math.max.apply(null,numArray);
}
var arr = [1,2,3];
console.log(max(arr));//3
console.log(Math.max(...arr));//3
Math.min([x[,y[,…]]])
返回0个到多个数值中最小值.(用法和Math.max()类似,所以就不啰嗦了)
Math.pow(x,y)
返回x的y次幂.
function pow(x,y) {
return Math.pow(x,y)
}
看个小例子:
function pow(x,y){
return Math.pow(x,y);
}
console.log(pow(2,3));//8
Math.random()
返回0到1之间的伪随机数.
Math.random() 函数返回一个浮点, 伪随机数在范围[0,1),也就是说,从0(包括0)往上,但是不包括1(排除1),然后您可以缩放到所需的范围。实现将初始种子选择到随机数生成算法;它不能被用户选择或重置。他不能被用户选择或重置。
得到一个大于等于0,小于1之间的随机数
function getRandom() {
return Math.random();
}
得到一个两数之间的随机数
这个例子返回了一个在指定值之间的随机数。这个值不小于min(如果min不是整数的话,得到一个向上取整的 min),并且小于(但不等于)max
function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}
得到一个两数之间的随机整数
这个例子返回了一个在指定值之间的随机整数。这个值比min大(如果min不是整数,可能相等)
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min;
}
得到一个两数之间的随机整数,包括两个数在内
function random(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}
Math.round(x)
返回四舍五入后的整数.
注意:如果参数的小数部分恰好等于0.5,则舍入到下一个正无穷方向的整数。
console.log(Math.round(0.5));//1
console.log(Math.round(12.5));//13
console.log(Math.round(-12.5));//-12
console.log(Math.round(-0.5));//0
需要注意的是三角函数(sin(), cos(), tan(),asin(), acos(), atan(), atan2())是以弧度返回值的。可以通过除法(Math.PI / 180)把弧度转换为角度,也可以通过其他方法来转换。
Math.sin(x)
sin 方法返回一个 -1 到 1 之间的数值,表示给定角度(单位:弧度)的正弦值。
Math.sin(0); // 0
Math.sin(1); // 0.8414709848078965
Math.sin(Math.PI / 2); // 1
Math.asin(x)
asin 方法接受 -1 到 1 之间的数值作为参数,返回一个介于 - π2 到 π2 弧度的数值。如果接受的参数值超出范围,则返回 NaN。
Math.asin(-2); // NaN
Math.asin(-1); // -1.5707963267948966 (-pi/2)
Math.asin(0); // 0
Math.asin(0.5); // 0.5235987755982989
Math.asin(1); // 1.570796326794897 (pi/2)
Math.asin(2); // NaN
Math.cos(x)
cos 方法返回一个 -1 到 1 之间的数值,表示角度(单位:弧度)的余弦值。
Math.cos(0); // 1
Math.cos(1); // 0.5403023058681398
Math.cos(Math.PI); // -1
Math.cos(2 * Math.PI); // 1
Math.acos(x)
acos 方法以 -1 到 1 的一个数为参数,返回一个 0 到 pi (弧度)的数值。如果传入的参数值超出了限定的范围,将返回 NaN。
Math.acos(-2); // NaN
Math.acos(-1); // 3.141592653589793
Math.acos(0); // 1.5707963267948966
Math.acos(0.5); // 1.0471975511965979
Math.acos(1); // 0
Math.acos(2); // NaN
Math.tan(x)
tan 方法返回一个数值,表示一个角的正切值。
function tan(deg) {
var rad = deg * Math.PI/180;
return Math.tan(rad);
}
看个小例子
function tan(deg) {
var rad = deg * Math.PI/180;
return Math.tan(rad);
}
console.log(tan(30));//0.5773502691896257
Math.atan2(y, x)
atan 返回一个 - π2 到 π2 弧度之间的数值。Math.atan(1); // 0.7853981633974483
Math.atan(0); // 0
返回 y/x 的反正切值.
参考文章:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math