Math
Math对象是JavaScript的内置对象,提供一系列的数学常数和数学方法。Math对象只提供了静态的属性和方法,所以使用时,不需要实例化。
属性
Math对象提供以下一些只读的数学常数。
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
方法:
- round:round方法用于四舍五入
console.log(Math.round(1.5)); // 2
console.log(Math.round(1.4)); // 1
console.log(Math.round(1.6)); // 2
console.log(Math.round(-1.5)); // -1
console.log(Math.round(-1.4)); // -1
console.log(Math.round(-1.6)); //-2
TIM图片20190121123936.png
- abs:返回参数的绝对值
console.log(Math.abs(1.5)); // 1.5
console.log(Math.abs(-1.4)); // 1.4
TIM图片20190121124141.png
- max:返回最大的参数,min:返回最小的参数
console.log(Math.max(2,6,-3)); // 6
console.log(Math.min(-1.4,9,0,-3)); // -3
TIM图片20190121124547.png
这两个方法用于避免多余的循环和在if语句中确定一组数的最大值。
- 示例:
var value = [1,2,3,4,5,6,7.8]
var max = Math.max.apply(Math,values);
以上方法的关键:把Math对象作为apply()的第一个参数,从而正确的设置this值,然后,可以将任何数组作为第二个参数。
- floor:返回小于参数值的最大整数,ceil:范湖大于参数值的最小整数
console.log(Math.floor(-3.4)); // -4
console.log(Math.floor(4.6)); // 4
console.log(Math.ceil(-2.8)); // -2
console.log(Math.ceil(6.7)); // 7
TIM图片20190121124830.png
- pow:返回以第一个参数为底数,第二个参数为幂的指数值
console.log(Math.pow(2,3)); // 8
console.log(Math.pow(4,2)); // 16
TIM图片20190121125103.png
- sqrt: 返回参数的平方根,如果参数是负数,返回NaN
console.log(Math.sqrt(4)); // 2
console.log(Math.sqrt(-1)); //NaN
console.log(Math.sqrt(8)); //2.82.....
TIM图片20190121125318.png
Math.random():返回0到1之间的伪随机数,可能等于0,但是一定小于1
- 语法:
console.log(Math.random()); //每次运行后的结果不同
- 示例:
//得到0或1随机数
//random(0,2)
//n + Math.floor(Math.random()*10);
//得到[a,b)的随机数
function random(a,b) {
return a + Math.floor(Math.random()*(b-a));
}
var arr = [];
for(var i = 0; i < 50; i ++){
arr.push(random(0,10));
}
console.log(arr);
// 得到一个随机字符串
function randomStr(len){
var dict = '0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
var str = '';
for(var i = 0; i < len; i ++){
str += dict[random(0,62)]//获取数组的下表所对应的元素
}
return str;
}
console.log(randomStr(8));
//如何得到一个随机的IP地址:0.0.0.0~255.255.255.255
function randomIP(len){
var arr = []
for(var i = 0; i < 4; i++){
arr.push(random(0,256));
}
return arr.join('.');
}
console.log(randomIP());
//有一半的几率在做什么事情,另一半的几率在做另一件事
if(Math.random() > 0.5){
console.log('haha');
}else{
console.log('ninini');
}
TIM图片20190121132724.png
sin方法返回参数的正弦,cos方法返回参数的余弦,tan方法返回参数的正切。
Math.sin(0) // 0
Math.cos(0) // 1
Math.tan(0) // 0
asin方法返回参数的反正弦,acos方法返回参数的反余弦,atan方法返回参数的反正切。这三个方法的返回值都是弧度值。
Math.asin(1) // 1.5707963267948966
Math.acos(1) // 0
Math.atan(1) // 0.7853981633974483
网友评论