gpt4 book ai didi

JavaScript:如何解释 `Math.floor(Math.random)` 方法的变体?

转载 作者:行者123 更新时间:2023-12-02 15:17:26 25 4
gpt4 key购买 nike

似乎 Math.random()*3|0 等于 Math.floor(Math.random() * 3),这是我的版本我熟悉。虽然我可以毫无问题地理解后者如何生成整数 0、1 和 2 的逐步过程,但前者的结构却难倒了我。它很可能是更迂回的 Math.floor 方法的惯用变体。

是否可以用 x|y 样式表达以下两段代码并产生相同的结果?如果是这样,你能分解一下它是如何工作的吗?

<小时/>
1 + Math.floor(Math.random() * 100) // yielding 1-100 (inclusive)

190 + Math.floor(Math.random() * 66) // yielding 190-255 (inclusive)

最佳答案

|是 JavaScript 中的按位或运算符。按位或运算符在每个位位置返回 1,其中任一操作数或两个操作数的相应位均为 1。x| 0 是 x,对于任何 x

按位运算符仅适用于整数,因此 javascript 将 float 转换为整数。因此 1.5 | 0 变成 1。

你的表达式可以重写为

1 + (Math.random() * 100 | 0)

190 + (Math.random() * 66 | 0)

关于JavaScript:如何解释 `Math.floor(Math.random)` 方法的变体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34336488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com