有关Math
ECMAScript中提供了Math对象保存了许多有关数学方面的api或者是常数,而且使用Math对象上提供的方法来计算要比在JavaScript中自己实现的快得多,因为Math对象上的计算方法使用了JavaScript引擎中更高效的实现和处理器指令,有个缺点就是,Math计算的问题精度因为浏览器、操作系统、指令集和硬件而异。
Math的random随机数方法
Math.random()产生的范围在[0,1)之间,注意0可以取得到而1取不到。
因此如果我们要保证数字在某个区间,我们就当然要利用好[0,1)这个区间,怎么说呢,如果我们是要产生1,10之间的范围那么我们只需要使用Math.random()*10得到[0,10)之间然后在加上1就好,但是random总是返回带有小数点的数值,所以我们可以利用Math.floor(number)来对取得的结果进行向下取整
如果我们要选择包含从x,y(y>x)的整数范围,那么我们只需要确定x-y+1的数字之间相隔多少,然后在加上最小值,最后在使用Math.floor(resultNumber)来对数字进行向下取整即可
const selectFrom = (lowerNumber, upperNumber) => {
const bound = upperNumber - lowerNumber + 1;
return Math.floor(Math.random * bound + lowerNumber);
}
// 以上的函数就会范围一个在[ lowerNumber, upperNumber ] 范围内的一个数字了