1

>>符号是什么意思?在此页面上,有一行如下所示:

var i = 0, l = this.length >> 0, curr;
4

2 回答 2

8

它是按位移动的。

让我们以数字 7 为例,它在二进制中是0b00000111

7 << 1将它向左移动一位,给你0b0000111014

同样,您可以向右移动:7 >> 1将切断最后一位,给您0b000000113。

[编辑]
在 JavaScript 中,数字存储为floats。但是,在移位时需要整数值,因此对 JavaScript 值使用位移会将其从浮点数转换为整数。

在 JavaScript 中,移动 0 位会将数字向下舍入*(整数舍入) (更好的措辞:它将值转换为整数)

> a = 7.5;
7.5
> a >> 0
7

*:除非数字是负数。

旁注:由于 JavaScript 的整数是 32 位的,因此除非您绝对确定不会使用大数,否则请避免使用按位移位。

[编辑 2]
this.length >> 0也将复制数字,而不是引用它。虽然我不知道为什么有人会想要那个。

于 2012-12-25T11:14:59.740 回答
1

就像在许多其他语言中一样,>>运算符(在<<和之间>>>)是按位移位

于 2012-12-25T11:14:27.327 回答