>>
符号是什么意思?在此页面上,有一行如下所示:
var i = 0, l = this.length >> 0, curr;
它是按位移动的。
让我们以数字 7 为例,它在二进制中是0b00000111
7 << 1
将它向左移动一位,给你0b00001110
14
同样,您可以向右移动:7 >> 1
将切断最后一位,给您0b00000011
3。
[编辑]
在 JavaScript 中,数字存储为floats。但是,在移位时需要整数值,因此对 JavaScript 值使用位移会将其从浮点数转换为整数。
在 JavaScript 中,移动 0 位会将数字向下舍入*(整数舍入) (更好的措辞:它将值转换为整数)
> a = 7.5;
7.5
> a >> 0
7
*:除非数字是负数。
旁注:由于 JavaScript 的整数是 32 位的,因此除非您绝对确定不会使用大数,否则请避免使用按位移位。
[编辑 2]
this.length >> 0
也将复制数字,而不是引用它。虽然我不知道为什么有人会想要那个。
就像在许多其他语言中一样,>>
运算符(在<<
和之间>>>
)是按位移位。