javascript的技巧——内置对象的相互使用

       写这篇博客的原因是自己想要记住一个自己通过搜索解决问题的时候,没有理解,但是学到内置对象的时候才知道怎么理解的问题的理解,并不是总的知识点的归纳。关于内置对象的方法使用,可以多去MDN网站查找对应的方法:MDN网站,今天我们来说一说随机数和取整的内置对象。


随机数

       在内置方法中有一个math的方法是取随机数,叫做random。Math.random() 函数返回一个浮点数,  伪随机数在范围从0到小于1,也就是说,从0(包括0)往上,但是不包括1(排除1),然后您可以缩放到所需的范围。实现将初始种子选择到随机数生成算法;它不能被用户选择或重置。

例子如下:

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

 

如果我们需要取的更多的数字,我们需要怎么去写代码呢?这里MDN已经给了我们方法:

 这个例子返回了一个在指定值之间的随机数。这个值不小于 min(有可能等于),并且小于(不等于)max

function getRandomArbitrary(min, max) {
  return Math.random() * (max - min) + min;
}

 

       这就是取一个数值范围内的随机数字的方法,如果我们需要去取得的是整数的话,我们需要怎么去写代码呢?MDN是这样写的:

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

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

 

       虽然我们可以这样去取整数,但是时候之后我们会发现,能取得的量的最后一个值,没办法随机到,这是因为我们random本质上范围还是小于最大值的,并没有包含最大值。我们需要用什么方法去获得两个随机数范围内的全部数呢?MDN提供了一个新的函数方法:

getRandomIntInclusive() 函数可以实现。

function getRandomIntInclusive(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min; //含最大值,含最小值 
}

这就是随机数取的自己需要的数值所用的方法。 


取整方法

       在math对象中也存在一个方法可以取整,Math.round()函数返回一个数字四舍五入后最接近的整数。如果参数的小数部分大于0.5,则舍入到相邻的绝对值更大的整数。如果参数的小数部分小于0.5,则舍入到相邻的绝对值更小的整数。如果参数的小数部分恰好等于0.5,则舍入到相邻的在正无穷(+∞)方向上的整数。注意,与很多其他语言中的round()函数不同,Math.round()并不总是舍入到远离0的方向(尤其是在负数的小数部分恰好等于0.5的情况下)。

另外还需要注意:

       因为round()是Math 的静态方法,你应该直接使用Math. round(),而不是作为你创建的Math对象的一个实例方法来使用(Math没有构造函数)。

使用方法如下:

x = Math.round(20.49);   //20
x = Math.round(20.5);    //21
x = Math.round(-20.5);   //-20
x = Math.round(-20.51);  //-21


组合技

       随机数!取整!合体变身假面骑士!塔塔开!我们把这两个组合在一起,就可以更加方便的使用随机数的内容。我们知道随机数是取0~1但是不包含1的值,但是我们通过取证,会把0.9的值取值为1,于是0~1的值就会变成0和1的值。也就是说,如果我们的取值不需要0~1中不包含小数的整数值时,我们可以通过取证随机数的方式之间实现更简单的代码效果。具体的实现如下:

var random = Math.round(Math.random() * 100);

例如我们想要取得0~100以内5的倍数的数值,让程序自己随机出来这个数值,我们就可以这样去写代码:

var math = new Object;
        math.round = function() {
            do {
                var random = Math.round(Math.random() * 100);
                if (random % 5 == 0) {
                    console.log(random);
                }
            } while (random % 5 !== 0);
            return;
        }
        math.round();

我来看看他是怎么运行的:

 我们可以看到,随机数就像我们所理解的那样,知道随机出能够被5整除的数字才能被log输出出来。达到了我们想要的结果。

这就是这篇博客想说的内容,谢谢大家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值