为什么这个['3'| 0 + 1]按位不起作用?

时间:2011-06-12 20:07:13

标签: javascript bit-manipulation

似乎这只适用于“偶数”数字:

"8"|0 + 1   // 9
"3"|0 + 1   // 3
("3"|0) + 1 // 4

"3"|0会转换为整数3

那么这里发生了什么?为什么第二个例子在JS中的表现如此?

2 个答案:

答案 0 :(得分:8)

+的优先级高于|。

所以它解析如下:

"8" | (0 + 1) = "8" | 1 = 9
"3" | (0 + 1) = "3" | 1 = 3

答案 1 :(得分:6)

+的优先级高于|,因此您需要将括号放入以获得所需的评估顺序。