这个运算符在 JavaScript 中是如何工作的。发现自https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String#Non-native_methods
var s = 12;
s>>=1;
console.log( s );
s>>=1;
console.log( s );
s>>=1;
console.log( s );
我得到结果 "6,3,1" 。我很好奇它的工作原理。
这个运算符在 JavaScript 中是如何工作的。发现自https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String#Non-native_methods
var s = 12;
s>>=1;
console.log( s );
s>>=1;
console.log( s );
s>>=1;
console.log( s );
我得到结果 "6,3,1" 。我很好奇它的工作原理。
>>=执行按位右二进制移位,并将结果分配回左侧操作数。
12      is 0b1100
12 >> 1 is 0b0110 (6)
 6 >> 1 is 0b0011 (3)
 3 >> 1 is 0b0001 (1)
请注意,单个位右移等效于“整数除以二”操作。
在 JS 中,所有按位运算(除了>>>)都隐式地将左侧操作数转换为有符号的 32 位数字。>>>操作例为无符号32 位数字。
它是一个右移运算符。 
12在二进制中1100,右移 1 个位置是0110,6右移 1 个位置是0011,最后一个右移给你0001。