js Math 静态类

Math 数学方法

  • 方法集全部是静态属性和方法;
  • Math是一种静态类,该类别不能实例化。

(补充:虽然跟整理主题无关,但是既然发现了,就列在这儿了。console.log(0.1+0.2===0.3); //结果为false ; 因为js处理小数点儿时有问题)

Math的静态属性

  • Math.PI:π
    1、console.log(Math.PI); //3.141592653589793
    2、弧度变角度:180/Math.PI * 弧度;
    3、角度转弧度:Math.PI/180 * 角度;
  • Math.SQRT2:2 的平方根
    1、console.log(Math.SQRT2); //1.4142135623730951
    2、该属性返回 2 的平方根。

Math的静态方法

  • Math.abs(); 绝对值
    console.log(Math.abs(-5)); //5

  • Math.round(3.2); 四舍五入
    舍入小细节:这个负数有点特别。
    console.log(Math.round(-3.5)); //-3 -4+0.5 0.5入
    console.log(Math.round(-3.6)); //-4 -4+0.4 0.4舍

  • Math.floor(); 向下取整
    console.log(3.6); //3
    console.log(-3.5); //-4
    console.log(-3.6); //-4

    • 也可以用 ~~(双非按位取反运算符),比Math.floor()速度更快些。
      不过要注意,对于正数,它向下取整;对于负数,向上取整;对于非数字取值为0,具体表现形式如下:
      在这里插入图片描述
  • Math.ceil(); 向上取整
    console.log(3.2); //4

  • Math.max(); 求最大值;
    Math.min(); 求最小值。

1、直接求最大、最小值
console.log(Math.max(3, 5, 7, 8));  //8
console.log(Math.min(3, 5, 7, 8));   //3 
2、求数组中的最大、最小值
var arr=[1,24,53,0];
conso.log(Math.max.apply(null,arr));  //10
conso.log(Math.min.apply(null,arr));  //1

apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性。
Function.apply(obj,args)方法能接收两个参数
obj:这个对象将代替Function类里this对象
args:这个是数组,它将作为参数传给Function(args–>arguments)
(参考:https://www.cnblogs.com/chenhuichao/p/8493095.html)

  • Math.sqrt(); 求平方根,速度较之下面的pow快
    console.log(Math.sqrt(9)); //3

  • Math.pow(); 求幂(求几次方&平方根&立方根)

console.log(Math.pow(2,2));  //4  2的2次幂为4
console.log(Math.pow(2,4));  //16  2的4次幂为16
console.log(Math.pow(2,0.5));//1.4142135623730951 2的平方根 属性Math.SQRT2是2的平方根
console.log(Math.pow(4,0.5));//2  平方根 速度较慢
console.log(Math.pow(27,1/3));//3  立方根

//求2的次方幂,还可以用移位,但只能求2的,且次方数有限制(位)
console.log(1<<30);  //1073741824  最高2的30次幂(是正确的)
console.log(Math.pow(2,30));  //1073741824
  • Math.random(); 随机值0~1,但不包含1
    Math.ceil(Math.random); //包含1
    Math.floor(Math.random()*(max-min))+min;//传入min、max的值,可以求介于两者之间的随机数。
function random(min, max) {
    return Math.floor(Math.random() * (max - min)) + min;
}
console.log(random(50, 150)); //介于50~150间的随机数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值