获取两数区间随机整数的函数如下
function getRandom(min,max){
return Math.floor(Math.random() * (max - min) + min)
}
这个函数中,只可以使用Math.random,parseInt会出问题,二者虽然都是取整,但又有一些区别。
parseInt是「向0方向取整」。
Math.floor是「向下方向取整」,即向「数轴的左侧」取整。
再回到封装的随机数函数情景中,由于二者在正轴方向结果一致,所以只考虑参数为负的情况,例如传入-5和-1,Math.floor的取值范围为-5,-2。而parseInt取值范围为-4,-1。
总结:
- 正数范围内,二者结果一致。
- parseInt是向0方向取整(正数变小,负数变大),Math.floor是向数轴负方向取整(均变小)。