嘿伙计们,我刚刚看到这个快捷方式在某些JavaScript中被使用了。
(9 + 2) / 2|0; // results in 5
当您进行正常数学运算时,结果为5.5。
为什么顶级表达式会导致Math.floor((9 + 2)/ 2)? 有人可以指出管道正在做什么,我不明白捷径。
答案 0 :(得分:2)
(9+2)/2
的结果是JavaScript中的5.5
Or
操作。对于JavaScript,按位操作不能直接在64位表示上运行。相反,该值将转换为32位整数,这意味着5.5
到5
,然后5|0
的结果为5
。答案 1 :(得分:2)
单管|是BitWise OR 按位运算符仅允许整数值,因此在丢弃小数点值之后。
Bitwise OR
运算符|采用2位模式,并对每对相应位执行OR运算。
以下例子将解释它。
1010
1100
----------bitwise or
1110