随机整数函数的差异
Random integer functions differences
检查一些代码,我发现了以下随机整数生成器函数:
function randomInt(min, max) {
return min ? min : min = 0,
max ? max : max = 1,
0 | Math.random() * (max - min + 1) + min
}
将其与MDN:中的等效函数进行比较
// Returns a random integer between min (included) and max (excluded)
// Using Math.round() will give you a non-uniform distribution!
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}
我知道第一个创建和包含max
的整数,它检查值或将值分配给默认值min
和max
,但我不明白如果没有Math.floor()
方法,它是如何返回整数而不是浮点的。
是否使用0 | Math.random() * (max - min + 1) + min
表达式实现?如果是,如何?
使用|
运算符将结果转换为整数,该运算符是按位OR。根据MDN,计算结果的第一步是:
操作数被转换为32位整数,并由一系列位(0和1)表示。
因为您使用0进行"或"运算,所以此运算不会更改结果的值(除了前面提到的转换)。
0 |
是一个逐位操作
它对值没有影响(与零进行"或"运算会返回原始值),但与所有按位运算一样,它会截断为整数(按位运算对非整数没有意义)。
相关文章:
- NaN作为函数结果而不是必需的整数出现问题
- 如何从两个参数函数返回随机整数
- 如何使用函数的返回值.作为带有 HTML 的整数
- 字符串到整数函数不'不起作用
- 函数来检查给定整数数组中给定位置的元素是否大于其两个邻域
- Javascript函数生成概率不均匀的随机整数
- 函数只接受整数
- Jquery 比较函数不适用于整数
- 登录以使用 jquery 滚动函数将整数变量从最小值增加到最大值
- JavaScript onclick 函数在参数为整数而不是字符串时工作
- JavaScript 函数通过发送下一个元素的整数来更改元素的可见性
- JavaScript:以“常量”整数作为键的函数字典
- 随机整数函数的差异
- JavaScript将字符串和整数从PHP传递到函数中
- 传递给JavaScript函数的整数数组
- 我如何避免或围绕地板函数和错误表示的整数工作
- Javascript函数计算整数的阶乘
- Javascript函数将我的字符串参数视为整数
- 正弦函数精度在JavaScript角度PI rad和它的整数倍
- Javascript数组以整数形式转换为函数日志