1

>>シンボルは何を意味しますか?このページには、次のような行があります。

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

2 に答える 2

8

ビット単位のシフトです。

数字の 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も作成します。なぜ誰かがそれを望むのか私にはわかりませんが。

于 2012-12-25T11:14:59.740 に答える
1

他の多くの言語と同じように、>>演算子 (<<との間>>>) はビット単位のシフトです。

于 2012-12-25T11:14:27.327 に答える