Math对象

2019-01-21  本文已影响0人  学的会的前端

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

方法:

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
console.log(Math.abs(1.5)); // 1.5
console.log(Math.abs(-1.4)); // 1.4
TIM图片20190121124141.png
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值,然后,可以将任何数组作为第二个参数。

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
console.log(Math.pow(2,3)); // 8
console.log(Math.pow(4,2)); // 16
TIM图片20190121125103.png
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
上一篇下一篇

猜你喜欢

热点阅读