1

它有什么作用?

起初我以为这是一种速记方式,Math.max()
每次我做(1 | 0)or(0 | 2985235)时,我都会得到更大的数字。
但是,我错了,当我用示例发布这个问题时很快发现:
(128|256|0)which doesn't evaluate to 256.

感谢您的帮助。

4

2 回答 2

3

|按位或运算符。要查看它的作用,请考虑数字的二进制形式:

128 = 010000000
256 = 100000000
0   = 000000000

结果是逐位执行 OR

384 = 110000000

我想您可能会在表示选项的逻辑中遇到这种模式。例如,

128 = option 1
256 = option 2
384 = both option 1 & 2
于 2013-05-25T09:38:45.733 回答
2

|是 Javascript 中的位运算符。因此,在评估这些整数之前,首先将它们转换为二进制。

  0 -> 000000000
128 -> 010000000
256 -> 100000000

根据您的数据类型,可能会有更多前面的零。无论如何|,作为按位或运算符,将从这两个整数中评估每一位。

因此,您将得到 110000000 作为结果,即十进制的 384。

PS OR 运算:如果其中任何一个为真,则为真。

于 2013-05-25T09:39:48.793 回答