pim*_*vdb 23 javascript bit-manipulation bitwise-operators infinity bitwise-or
我正在摆弄JavaScript中的按位运算符,我发现有一件事值得注意.
在按位或运算符返回1作为输出比特,如果两个输入比特中的一个是1.所以x | 0总是返回x,因为| 0没有效果:
( 1 | 0 ) === 1( 0 | 0 ) === 0但是,当我计算时Infinity | 0,我得到了0.这在我看来是令人惊讶的,因为通过上面的应该得到Infinity.毕竟,( x | 0 ) === x.
我无法在ECMAscript规范中找到明确定义的位置,因此我想知道究竟是什么意思( Infinity | 0 ) === 0.也许Infinity是存储在内存中的方式?如果是这样,怎么仍然可以做一个| 0操作导致它返回0而不| 0应该做任何事情?
| 归档时间: |
|
| 查看次数: |
1455 次 |
| 最近记录: |