在math中使用Javascript管道获取math.floor而不使用math.floor
我刚刚看到在一些JavaScript中使用了这个快捷方式在math中使用Javascript管道获取math.floor而不使用math.floor,javascript,math,Javascript,Math,我刚刚看到在一些JavaScript中使用了这个快捷方式 (9 + 2) / 2|0; // results in 5 当你做普通数学时,结果是5.5 为什么顶部表达式会产生Math.floor((9+2)/2)? 有人能指出那根管子在干什么吗?我不懂捷径 首先,JavaScript中(9+2)/2的结果是5.5 然后应用一个位或操作。对于JavaScript,逐位操作不能直接在64位表示上工作。相反,该值被转换为32位整数,这意味着5.5到5,然后5 | 0的结果是5 单根管道是。 位运算
(9 + 2) / 2|0; // results in 5
当你做普通数学时,结果是5.5
为什么顶部表达式会产生Math.floor((9+2)/2)?
有人能指出那根管子在干什么吗?我不懂捷径
(9+2)/2
的结果是5.5
或操作。对于JavaScript,逐位操作不能直接在64位表示上工作。相反,该值被转换为32位整数,这意味着5.5
到5
,然后5 | 0
的结果是5
位运算符只允许整数值,所以小数点后的值将被丢弃
按位或
运算符|采用2位模式,并对每对对应位执行或运算下面的示例将对此进行解释
1010
1100
----------bitwise or
1110
这是一个按位的“或”,看看这个问题: