似乎这只适用于“偶数”数字:
"8"|0 + 1 // 9
"3"|0 + 1 // 3
("3"|0) + 1 // 4
但"3"|0
会转换为整数3
。
那么这里发生了什么?为什么第二个例子在JS中的表现如此?
答案 0 :(得分:8)
+的优先级高于|。
所以它解析如下:
"8" | (0 + 1) = "8" | 1 = 9
"3" | (0 + 1) = "3" | 1 = 3
答案 1 :(得分:6)
+
的优先级高于|
,因此您需要将括号放入以获得所需的评估顺序。