什么是符号>>在javascript中表示

时间:2012-12-25 11:11:40

标签: javascript

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

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

2 个答案:

答案 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