符号>>在javascript中的含义是什么

cha*_*HXC 1 javascript

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

var i = 0, l = this.length >> 0, curr;
Run Code Online (Sandbox Code Playgroud)

Tom*_*rdt 8

它是按位移动的.

我们取数字7,二进制是 0b00000111

7 << 1将它向左移一位,给你0b00001110,这是14

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

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

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

> a = 7.5;
7.5
> a >> 0
7
Run Code Online (Sandbox Code Playgroud)

*:除非数字为负数.

旁注:由于JavaScript的整数是32位,因此请避免使用按位移位,除非您完全确定不会使用大数字.

[编辑2]
this.length >> 0也会复制该号码,而不是参考它.虽然我不知道为什么有人会想要那个.