>>
符号是什么意思?在this page上,有一行如下所示:
var i = 0, l = this.length >> 0, curr;
答案 0 :(得分:8)
这是按位移动。
我们取数字7,二进制为0b00000111
7 << 1
向左移一位,给你0b00001110
,即14
同样,你可以向右移动:7 >> 1
会切断最后一位,给你0b00000011
即3。
<强> [编辑] 强>
在JavaScript中,数字存储为浮动。但是,在移位时需要整数值,因此在JavaScript值上使用位移会将其从float转换为整数。
在JavaScript中,移位0位会使数字向下舍入*(整数舍入) (更好的措辞:它会将值转换为整数)
> a = 7.5;
7.5
> a >> 0
7
*:除非数字为负数。
旁注:由于JavaScript的整数是32位,因此请避免使用按位移位,除非您完全确定不会使用大数字。
[编辑2]
this.length >> 0
也会生成该号码的副本,而不是引用它。虽然我不知道为什么有人会这么想。
答案 1 :(得分:1)
与许多其他语言一样>>
运算符(<<
和>>>
之间)是bitwise shift。