As others explained, it is the "bitwise shift with zero" operator.
With positive values this has the same effect as the normal >>
operator. With negative values, the most-significant bit is the "sign" bit. Normal shifting will shift the sign bit in (1 for negative values, 0 for positive). >>>
has a different effect, because it always shifts in a zero instead of the sign bit:
-2>>1 == -1
-2>>>1 == 2147483647
More on how negative values are represented can be found here.
What all shift operators do is cast the value to a 32-bit integer (at least my Firefox does), so shifting by 0
means that the value will always be within the 32-bit range. Bitwise shift with 0
will also make sure the value is positive:
a = Math.pow(2,32) // overflow in 32-bit integer
a>>0 == 0
b = Math.pow(2,32) - 1 // max 32-bit integer: -1 when signed, 4294967295 when unsigned
b>>0 == -1
b>>>0 == 4294967295 // equal to Math.pow(2,32)-1