我只是在试验并尝试将其放入控制台:
4 | 2 | 4 | 1 | 10
在控制台中返回 15..
4 | 2 | 4 | 3 | 1
在控制台中返回 7..
我在 Chrome 和 Firefox 上试过了。
为什么?
我刚开始学习 JavaScript...也许我在这里漏掉了一个概念?
最佳答案
JavaScript 中的 |
运算符是 bitwise integer OR operator .所以它对你给它的位进行 OR 运算,结果是 15。
A bitwise OR operation如果设置了该位置的输入位中的任一个,则获取值中的每一位并设置结果中的相应位。所以
4 is 0100 in binary 2 is 0010 4 is 0100 1 is 0001 10 is 1010 ---- 1111 = 15 decimal
更新:在对您的问题的评论中,您说过您期望的是 true
而不是 15
。如果是这样,您需要逻辑 OR 运算符||
,而不是按位运算符,尽管||
的返回值可能会让您大吃一惊(4 || 2 || 4 || 1 || 10 = 4
,不是 true
),作为 JavaScript 的逻辑或 (||
)是curiously powerful ,比许多其他语言更是如此。
关于javascript - 为什么这个 "4 | 2 | 4 | 1 | 10"在 JavaScript 中返回 15?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9388525/