>>
シンボルは何を意味しますか?このページには、次のような行があります。
var i = 0, l = this.length >> 0, curr;
ビット単位のシフトです。
数字の 7 を考えてみましょう。これは 2 進数では0b00000111
7 << 1
これを 1 ビット左にシフトすると、 が得られます0b00001110
。これは 14です。
同様に、右にシフトすることもできます:7 >> 1
は最後のビットを切り捨て、0b00000011
どれが 3 になるかを示します。
[編集]
JavaScript では、数値はfloatとして格納されます。ただし、シフトする場合は整数値が必要なため、JavaScript 値でビット シフトを使用すると、浮動小数点から整数に変換されます。
JavaScript では、0 ビットずつシフトすると数値が切り捨てられます* (整数の丸め) (より適切な表現: 値が整数に変換されます)
> a = 7.5;
7.5
> a >> 0
7
*: 数値が負の場合を除きます。
補足: JavaScript の整数は 32 ビットであるため、大きな数値を使用しないという確信がない限り、ビット単位のシフトは使用しないでください。
[編集 2]は、番号への参照を取得する代わりに、番号のコピー
this.length >> 0
も作成します。なぜ誰かがそれを望むのか私にはわかりませんが。
他の多くの言語と同じように、>>
演算子 (<<
との間>>>
) はビット単位のシフトです。