JS内建对象——Math

目录

What——Math是什么?

Have——Math中的常量和静态方法

1.常量

2.方法

生成各种范围随机数的方法

1.生成 [ 0,1 )之间的随机数

2.生成 [ 0 ,x ) 之间的随机数

3.生成 [ x , y ) 之间的随机数

4.生成 [ x , y ) 之间的随机整数

5.生成 [ x , y ] 之间的随机整数


What——Math是什么?

1.Math一个工具类, Math中为我们提供了数学运算相关的一些常量和方法

2.Math 是一个内置对象,它拥有一些数学常数属性和数学函数方法。Math 不是一个函数对象。

3.与其他全局对象不同的是,Math 不是一个构造器。Math 的所有属性与方法都是静态的。引用圆周率的写法是 Math.PI,调用正余弦函数的写法是 Math.sin(x),x 是要传入的参数。Math 的常量是使用 JavaScript 中的全精度浮点数来定义的。

Have——Math中的常量和静态方法

1.常量

常量描述
Math.PI圆周率,一个圆的周长和直径之比,约等于 3.14159。
Math.E欧拉常数,也是自然对数的底数,约等于 2.718。
Math.LN22 的自然对数,约等于 0.693。
Math.LN1010 的自然对数,约等于 2.303。

更多见MDN文档:https://developer.mozilla.org/zh-CN/

2.方法

方法描述例子
Math.abs(x)返回一个数的绝对值。result = Math.abs(-10)//10
Math.min([x[, y[, …]]])返回零到多个数值中最小值。result = Math.min(10, 20, 30, 44, 55, -1)//-1
Math.max([x[, y[, …]]])返回零到多个数值中最大值。result = Math.max(10, 20, 30, 44, 55, -1) //55
Math.pow(x, y)返回一个数的 y 次幂。相当于x**yresult = Math.pow(4, 2) // 4 ** 2
Math.sqrt(x)返回一个数的平方根。result = Math.sqrt(4) // 4 ** 0.5
Math.floor(x)返回小于一个数的最大整数,即一个数向下取整后的值。result = Math.floor(1.2) //1
result = Math.floor(-1.2) //-2
Math.ceil(x)返回大于一个数的最小整数,即一个数向上取整后的值。result = Math.ceil(1.2) //2
result = Math.ceil(-1.2) //-1
Math.round(x)返回四舍五入后的整数。result = Math.round(1.4) //1
result = Math.round(2.6) //3
Math.trunc(x)返回一个数的整数部分,直接去除其小数点及之后的部分。result = Math.trunc(1.2) //1
result = Math.trunc(-1.2) //-1
Math.random()返回一个 [0,1)之间的伪随机数。

生成各种范围随机数的方法

1.生成 [ 0,1 )之间的随机数

得到一个大于等于 0 小于 1 之间的随机数

function getRandom() {
  return Math.random();
}

2.生成 [ 0 ,x ) 之间的随机数

生成 0-x之间的随机数: Math.round(Math.random() * x) Math.floor(Math.random() * (x + 1))

function getRandom(x) {
  return  Math.round(Math.random() * x)
}

function getRandom(x) {
   Math.floor(Math.random() * (x + 1))
}

3.生成 [ x , y ) 之间的随机数

生成 x-y 之间的随机数 Math.Math.random() * (y-x) + x

可根据需要结合Math.round()、Math.floor()等使用

function getRandomArbitrary(x, y) {
  return  Math.random*(y-x)+x;
}

4.生成 [ x , y ) 之间的随机整数

这个示例返回一个在指定值之间的随机整数。这个值不小于 min(如果 min 不是整数,则不小于 min 的向上取整数),且小于(但不等于)max。

function getRandomInt(min, max) {
  const minCeiled = Math.ceil(min);
  const maxFloored = Math.floor(max);
  return Math.floor(Math.random() * (maxFloored - minCeiled) + minCeiled); // 不包含最大值,包含最小值
}

备注: 也许很容易想到用 Math.round() 来实现,但是这会导致你的随机数处于一个不均匀的分布,这可能不符合你的需求。

5.生成 [ x , y ] 之间的随机整数

得到一个两数之间的随机整数,包括两个数在内 虽然上面的 getRandomInt() 函数包含最小值,但不含最大值。如果你需要结果同时包含最小值和最大值怎么办?下面的 getRandomIntInclusive() 函数可以实现这一点。

Math.floor(Math.random( ) * ( y - x + 1 ) + x )

function getRandomIntInclusive(min, max) {
  const minCeiled = Math.ceil(min);
  const maxFloored = Math.floor(max);
  return Math.floor(Math.random() * (maxFloored - minCeiled + 1) + minCeiled); // 包含最小值和最大值
}
  • 30
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值