【发布时间】:2016-03-24 00:48:17
【问题描述】:
似乎Math.random()*3|0 等同于Math.floor(Math.random() * 3),这是我熟悉的版本。虽然我理解后者如何生成整数 0、1 和 2 的逐步过程没有问题,但前者的结构让我难以理解。这很可能是更迂回的Math.floor 方法的惯用变体。
是否可以用x|y 风格来表达以下两个sn-ps 代码并产生相同的结果?如果是这样,你能分解一下它是如何工作的吗?
1 + Math.floor(Math.random() * 100) // yielding 1-100 (inclusive)
190 + Math.floor(Math.random() * 66) // yielding 190-255 (inclusive)
【问题讨论】:
-
num | 0与Math.floor(num)基本相同
标签: javascript math random integer